![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Регистрация: 28.02.2009 Пользователь №: 9145 ![]() |
Такой случай. Есть флешка размером 500х400, и фон размером, например, 2800х2500. Этот фон прокручивается внутри флешки перетаскиванием мышью. Так вот, нельзя ли установить каковы локальные координаты точки фона, находящейся точно в центре флешки? Не щелкая при этом мышкой. То есть, если глобальные координаты центра флешки х=250, у=200, то каковы координаты локальные?
|
|
|
![]()
Сообщение
#2
|
|
Участник ![]() ![]() Группа: Пользователи Сообщений: 117 Регистрация: 4.11.2006 Пользователь №: 1288 ![]() |
Цитата Так вот, нельзя ли установить каковы локальные координаты точки фона, находящейся точно в центре флешки? Не щелкая при этом мышкой. То есть, если глобальные координаты центра флешки х=250, у=200, то каковы координаты локальные? что-то такое: Код -1*(mc.x)+stage.stageWidth/2
-1*(mc.y)+stage.stageHeight/2 |
|
|
![]()
Сообщение
#3
|
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Регистрация: 28.02.2009 Пользователь №: 9145 ![]() |
|
|
|
![]()
Сообщение
#4
|
|
Участник ![]() ![]() Группа: Пользователи Сообщений: 83 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 ![]() |
А что здесь mc.x и mc.y? mc - это ваш мувик-фон, перемещаемый по стейджу. Это код верен, когда масштабирование флешки запрещено (начало координат стейджа в левом верхнем углу) и когда начало координат мувика-фона также находиться в левом верхнем углу. PS Я так понимаю вам в AS3 нужно. Тогда правильнее определять так: http://help.adobe.com/ru_RU/AS3LCR/Flash_1...globalToLocal() |
|
|
![]()
Сообщение
#5
|
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Регистрация: 28.02.2009 Пользователь №: 9145 ![]() |
Да, спасибо chingachgoog, мне как раз нужно AS3. А что, если изображение масштабируемое? Вообще, мне нужно сделать карту с приближением и удалением (с зумом, короче говоря). А поскольку начало координат фона в левом верхнем углу, то при масштабировании происходит смещение. Мне же нужно, чтобы zoom происходил относительно центра, то есть необходимо как-то компенсировать это смещение. Но вот формулу пока подобрать не могу.
|
|
|
![]()
Сообщение
#6
|
|
Участник ![]() ![]() Группа: Пользователи Сообщений: 83 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 ![]() |
|
|
|
![]()
Сообщение
#7
|
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Регистрация: 28.02.2009 Пользователь №: 9145 ![]() |
С методом globalToLocal() разобрался, как он работает. Теперь другое препятствие - передать результаты его работы переменным.
Код var point1:Point = new Point(250, 200); Применяю globalToLocal() для определения локальных координат в этой точке. Код container.globalToLocal(point1); trace(container.globalToLocal(point1)); Все работает, в output получаем, к примеру, такие значения: (x=300, y=240). Как теперь передать эти координаты переменным newX и newY, если globalToLocal() возвращает Point?(globalToLocal(point:Point):Point). |
|
|
![]()
Сообщение
#8
|
|
Участник ![]() ![]() Группа: Пользователи Сообщений: 83 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 ![]() |
|
|
|
![]()
Сообщение
#9
|
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Регистрация: 28.02.2009 Пользователь №: 9145 ![]() |
Я, кажется, разобрался. Создаю объект newPoint:
Код var newPoint:Point=container.globalToLocal(point1); trace("newX="+newPoint.x); trace("newY="+newPoint.y); Так ведь тоже можно? |
|
|
![]()
Сообщение
#10
|
|
Участник ![]() ![]() Группа: Пользователи Сообщений: 83 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 ![]() |
Так и нужно (IMG:style_emoticons/default/biggrin.gif)
|
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 12.04.2009 - 19:21 |