Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   что такое currentTarget? (http://www.flasher.ru/forum/showthread.php?t=195015)

olejan1991 26.02.2013 21:44

что такое currentTarget?
 
Просмотрел множество сайтов и, кажется, понял, но вот для закрепления решил спросить на примере такой ситуации, так сказать на пальцах: есть прямоугольник и в нем объект, получается при получении события этим объектом currentTarget - это ссылка на этот прямоугольник, а target - это ссылка на объект?

caseyryan 26.02.2013 21:51

currentTarget это объект на котором был зарегистрирован слушатель. Так что если слушатель был добавлен именно к этому прямоугольнику, то currentTarget будет ссылкой на этот прямоугольник, а уже от него событие может всплывать дальше по иерархии, и там уже ловятся target'ы

А для не дисплей объектов target и currentTarget всегда совпадают

Вообще, у Колина Мука это довольно хорошо описано в 12 главе.

olejan1991 26.02.2013 22:05

вот как раз ее читаю сейчас и именно на currentTarget наступил застой(

caseyryan 27.02.2013 09:36

Значит понимание прийдет позже. Не все понятно с первого раза. И ничего страшного в этом нет
А тема событий все-таки довольно сложная для понимания новичком. Учитывая еще то, что если это русскоязычный вариант книги, то как раз в этой главе есть ужасные неточности в переводе

Wolsh 27.02.2013 10:54

currentTarget указывает на объект, к которому Вы подписывались.
То есть, если Вы писали mc.addEventListener(...), то currentTarget будет указывать на mc и ни на что другое.
А target указывает на объект, непосредственно "родивший" событие.
Потому что currentTarget может быть не родителем, а только передатчиком события, одним из звеньев цепи "всплытия" события, не обязательно первым (target) и не обяззательно последним.
Допустим этот mc — экземпляр Sprite. Если в нем не содержится никаких интерактивных детей, а просто нарисован прямоугольник в его собственном графиксе, то при клике по этому спрайту target и currentTarget будут совпадать — сам родил, сам передал.
Если же в этот спрайт-контейнер будет добавлен другой интерактивный объект, скажем другой спрайт с графикой, и Вы кликаете над этим внутренним спрайтом, то родителем события будет он. Но слушаете то Вы внешний спрайт, и получаете событие от него. Поэтому target и currentTarget будут указывать на разные спрайты, на внутренний и внешний соответственно.

mikhailk 27.02.2013 12:40

Я бы все-таки еще упомянул про mouseChildren. Тоже влияет.


Часовой пояс GMT +4, время: 01:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.