У многих новичков as3 возникает вопрос: в чем разница между свойствами target и currentTarget объекта события? А разница в следующем.
Свойство currentTarget содержит объект, на которого была совершена подписка (у которого вы вызывали addEventListener ). В свою очередь свойство target содержит объект, который непосредственно рассылает событие.
Посмотрим отличия на примере. Пусть у нас есть подложка cover:Sprite и и несколько кнопок, расположенных на этой подложке. Мы подписываемся на клик по подложке
1 |
cover.addEventListener(MouseEvent.CLICK, onClick); |
и обрабатываем событие в слушателе
1 2 3 4 |
private function onClick(event:MouseEvent):void { // обработка события } |
Когда пользователь кликает по любой из кнопок, добавленных на cover, вызовется функция onClick() . При этом в event.currentTarget всегда будет ссылка на cover, вне зависимости от того, на какую из кнопок он кликнул. А вот свойство event.target как раз будет содержать ссылку на конкретную кнопку, по которой произошел клик.
Примечание
Обратите внимание, что в рассмотренном примере имеется ввиду, что сами кнопки не имеют интерактивных вложенных детей и на мышь реагирует только сама кнопка (например, выставлено button.mouseChildren = false; ).
Вот и всё. Если остались вопросы — прошу задавать в комментариях, это очень поможет улучшить и оптимизировать пост.
Не забудьте также ознакомиться с документацией по ActionScript3