Я не понимаю разницы, они оба кажутся одинаковыми, но я думаю, что нет.
Любые примеры того, когда использовать тот или иной будет приветствоваться.
actionscript-3
events
event-handling
Artemix
источник
источник
Ответы:
Бен совершенно прав в своем ответе - так что имейте в виду то, что он говорит. То , что я собираюсь сказать вам , это не полное объяснение, но это очень простой способ запомнить , как
e.target
,e.currentTarget
работу в связи с событиями мышей и список отображения:e.target
= Вещь под мышкой (как говорит Бен ... вещь, которая запускает событие).e.currentTarget
= Вещь перед точкой ... (см. Ниже)Так что если у вас есть 10 кнопок внутри клипа с именем экземпляра «btns», и вы делаете:
e.target
будет одной из 10 кнопок иe.currentTarget
всегда будет клипом "btns".Стоит отметить, что если вы изменили MouseEvent на ROLL_OVER или установили для свойства
btns.mouseChildren
значение false,e.target
иe.currentTarget
оба всегда будут иметь значение «btns».источник
currentTarget
объект всегда слушает событие;target
фактическая цель, которая получила событие. Для каждого всплывающего события, цель получает событие и всплывает список отображения. (Или наоборот для захвата событий)e.target
это то, что запускает диспетчер событий, иe.currentTarget
то, что вы назначили слушателю.источник
e.currentTarget
всегда тот элемент, с которым действительно связано событие.e.target
является элементом, из которого произошло событие, поэтомуe.target
может быть дочернимe.currentTarget
илиe.target
===e.currentTarget
, в зависимости от того, как структурирована ваша разметка.источник
Мне нравятся визуальные ответы.
Когда вы нажимаете
#btn
, вызывается два обработчика событий, и они выводят то, что вы видите на картинке.Демо здесь: https://jsfiddle.net/ujhe1key/
источник
Стоит отметить, что event.target может быть полезен, например, для использования одного слушателя для запуска различных действий. Допустим, у вас есть типичный спрайт «меню» с 10 кнопками внутри, так что вместо этого:
Вы можете просто сделать:
И инициировать другое действие в doAction (событие) в зависимости от event.target (используя его свойство name и т. Д.)
источник
сделать пример:
когда вы нажимаете «btn», появляются «true» и «true»!
источник
e.currentTarget всегда будет возвращать компонент, к которому добавляется прослушиватель событий.
С другой стороны, e.target может быть самим компонентом или любым непосредственным ребенком, или внуком, или внуком, и так далее, который получил событие. Другими словами, e.target возвращает компонент, который находится сверху в иерархии списка отображения и должен находиться в дочерней иерархии или в самом компоненте.
Одно из применений может быть, когда у вас есть несколько изображений в Canvas, и вы хотите перетащить изображения внутри компонента, кроме Canvas. Вы можете добавить прослушиватель в Canvas, и в этом прослушивателе вы можете написать следующий код, чтобы Canvas не перетаскивался.
источник
источник
Если вы щелкнете по дочернему элементу кнопки, лучше использовать currentTarget для обнаружения атрибутов кнопок, в CH иногда бывает сложно использовать e.target.
источник
e.currentTarget - это элемент (родитель), где регистрируется событие, e.target - это узел (потомки), на который указывает событие.
источник