PDA

Просмотр полной версии : чем отличается event.target от event.CurrentTarget


nocoments
07.02.2010, 07:41
чем отличается event.target от event.CurrentTarget

BeDLiNt
07.02.2010, 10:01
Каждый объект (под)класса Event имеет свойства target и currentTarget, помогающие определить текущий объект по мере прохождения стадий события. Первое указывает на объект, транслировавший событие, а второе -- на текущий объект. При клике на кнопку, например, Flash Player транслирует событие, начиная с наиболее "верхнего" (по иерархии) контейнера, который попал в точку клика. В этом случае свойство event.target указывает на транслировавший объект (в данном случае, UITextField), а не объект, события которого вы слушаете (почти наверняка это Button). Свойство event.target (UITextField в нашем примере) остается неизменной, а вот event.currentTarget меняется. Когда оно будет указывать на объект Button, сработает присвоенный пользователем обработчик. Поэтому, порой необходимо использовать именно currentTarget...
Event propagation (http://www.adobe.com/livedocs/flex/3/html/help.html?content=events_08.html)

DАSOLTER
09.02.2010, 20:10
Если у вас есть контейнер, например, Panel, в котором, есть кнопка (при этом событие click было зарегистрировано в Panel), то при клике на кнопке приемник события примет событийный объект, у которого: target="idКнопки", а currentTarget="idPanel".
Дело в том, что вы на самом деле жамкнули как бы одновременно и на кнопке и на панели, но так как кнопка находиться в списке отображения "выше" панели, то target-ом является именно она. А событие жамкания зарегистрировано то в Panel, поэтому оно и являетя currenTarget.
Вывод: target - ссылка на жамкнутый объект (который, конечно, имеет соответствующее событие), а currentTarget-ссылка на объект, в котором зарегистрировано данное событие