Отличия event.target и event.currentTarget

У многих новичков as3 возникает вопрос: в чем разница между свойствами target  и currentTarget  объекта события? А разница в следующем.

Свойство currentTarget  содержит объект, на которого была совершена подписка (у которого вы вызывали addEventListener ). В свою очередь свойство target  содержит объект, который непосредственно рассылает событие.

Посмотрим отличия на примере. Пусть у нас есть подложка cover:Sprite  и и несколько кнопок, расположенных на этой подложке. Мы подписываемся на клик по подложке

и обрабатываем событие в слушателе

Когда пользователь кликает по любой из кнопок, добавленных на cover, вызовется функция onClick() . При этом в event.currentTarget  всегда будет ссылка на cover, вне зависимости от того, на какую из кнопок он кликнул. А вот свойство event.target  как раз будет содержать ссылку на конкретную кнопку, по которой произошел клик.

Примечание

Обратите внимание, что в рассмотренном примере имеется ввиду, что сами кнопки не имеют интерактивных вложенных детей и на мышь реагирует только сама кнопка (например, выставлено button.mouseChildren = false; ).

Вот и всё. Если остались вопросы — прошу задавать в комментариях, это очень поможет улучшить и оптимизировать пост.

Не забудьте также ознакомиться с документацией по ActionScript3

Добавить комментарий