![]() |
что такое currentTarget?
Просмотрел множество сайтов и, кажется, понял, но вот для закрепления решил спросить на примере такой ситуации, так сказать на пальцах: есть прямоугольник и в нем объект, получается при получении события этим объектом currentTarget - это ссылка на этот прямоугольник, а target - это ссылка на объект?
|
currentTarget это объект на котором был зарегистрирован слушатель. Так что если слушатель был добавлен именно к этому прямоугольнику, то currentTarget будет ссылкой на этот прямоугольник, а уже от него событие может всплывать дальше по иерархии, и там уже ловятся target'ы
А для не дисплей объектов target и currentTarget всегда совпадают Вообще, у Колина Мука это довольно хорошо описано в 12 главе. |
вот как раз ее читаю сейчас и именно на currentTarget наступил застой(
|
Значит понимание прийдет позже. Не все понятно с первого раза. И ничего страшного в этом нет
А тема событий все-таки довольно сложная для понимания новичком. Учитывая еще то, что если это русскоязычный вариант книги, то как раз в этой главе есть ужасные неточности в переводе |
currentTarget указывает на объект, к которому Вы подписывались.
То есть, если Вы писали mc.addEventListener(...), то currentTarget будет указывать на mc и ни на что другое. А target указывает на объект, непосредственно "родивший" событие. Потому что currentTarget может быть не родителем, а только передатчиком события, одним из звеньев цепи "всплытия" события, не обязательно первым (target) и не обяззательно последним. Допустим этот mc — экземпляр Sprite. Если в нем не содержится никаких интерактивных детей, а просто нарисован прямоугольник в его собственном графиксе, то при клике по этому спрайту target и currentTarget будут совпадать — сам родил, сам передал. Если же в этот спрайт-контейнер будет добавлен другой интерактивный объект, скажем другой спрайт с графикой, и Вы кликаете над этим внутренним спрайтом, то родителем события будет он. Но слушаете то Вы внешний спрайт, и получаете событие от него. Поэтому target и currentTarget будут указывать на разные спрайты, на внутренний и внешний соответственно. |
Я бы все-таки еще упомянул про mouseChildren. Тоже влияет.
|
| Часовой пояс GMT +4, время: 01:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.