При обработке flash.events.MouseEvent, как мне найти localX / Y относительно currentTarget? - PullRequest
1 голос
/ 29 января 2009

У меня есть компонент, который рисует сетку вещей, и я хочу, чтобы маленький квадрат выделения следовал за мышью вокруг, выделяя квадрат, над которым мышь находится в данный момент.

Вся сетка - это всего лишь один большой спрайт (это очень большая сетка, и это было быстрее, чем при использовании уже существующих компонентов), а квадрат выделения - это еще один спрайт, который я пытаюсь перемещать в зависимости от положения мыши.

Итак, у меня есть обработчик MouseEvent.MOUSE_MOVE, прикрепленный к спрайту сетки, и он пытается определить, где находится мышь и какой квадрат за ней, чтобы она могла переместить квадрат выделения в нужное место. Я использовал localX / localY для этого, но как только я переместил спрайт выделения под мышью, они стали локальными для выделения, а не для сетки!

Я тоже играл с stageX / Y, но, похоже, они стали бесполезными, когда сцена прокручивается или ваш компонент прячется во вложенных контейнерах отображения.

Ответы [ 2 ]

4 голосов
/ 29 января 2009

По сути, я думаю, вы хотите проверить свойства мышиных компонентов сетки mouseX и mouseY, которые дадут вам координаты мыши относительно этого компонента. Тогда немного математики должно быть в состоянии дать вам понять, над каким элементом сетки вы находитесь.

0 голосов
/ 29 января 2009

Предполагая, что ваш выделенный спрайт является братом в сетке, и они оба являются дочерними элементами основного приложения, и вы нарисовали дочерние спрайты (квадраты) внутри сетки: вы можете добавить прослушиватели событий для каждого из квадратных спрайтов сетки. На опрокидывании выделите квадрат. Тогда вам, вероятно, не потребуется выполнять какой-либо перевод координат сетки или мыши с помощью grid.localToGlobal (новая точка (targetSquare.x, targetSquare.y)) или highlightSquare.globalToLocal (grid_point).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...