Проблема Flash / Actionscript: могут ли MouseEvents ориентироваться более чем на одну вещь одновременно? - PullRequest
1 голос
/ 11 апреля 2009

У меня есть специальный класс canvas, охватывающий всю мою сцену, и куча горячих точек Sprite на слое ниже. Если я помещаю горячие точки в тот же слой, что и мой холст, холст не регистрирует события MOUSE_DOWN, если моя мышь находится внутри одной из горячих точек, поскольку вместо них целевые точки являются целевыми. Однако, если я оставлю горячие точки на нижнем слое, холст обработает все MouseEvents. Есть ли способ сделать так, чтобы MouseEvents предназначался для нескольких целей, чтобы холст и горячие точки реагировали на MouseEvents? (Холст является классом растрового изображения, и горячие точки должны срабатывать, когда курсор касается их или нажимает на них.)

Ответы [ 2 ]

1 голос
/ 13 апреля 2009

apphacker понял все правильно.

Есть еще две вещи, которые могут вас заинтересовать:

свойство mouseChildren и метод getObjectsUnderPoint ()

удачи

1 голос
/ 11 апреля 2009

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

Третий аргумент addEventListener, useCapture, определяет, хотите ли вы всплывать или захватывать.

Звучит так, как будто вы хотите, чтобы происходило всплытие событий, поэтому вы хотите установить для useCapture значение false. Слушатели событий будут вызваны на ребенке и на родителе.

Захват событий и их передача

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