Руководство по actionscript. часть 3, стр. 141

События Event. ADDED и Event. REMOVED

После того как новый дочерний отображаемый объект добавляется в объект DisplayObjectContainer, среда Flash выполняет диспетчеризацию события Event. ADDED, получателем которого является новый дочерний объект. Подобным образом, когда существующий дочерний отображаемый объект удаляется из объекта DisplayOb j ectContainer, среда Flash выполняет диспетчеризацию события Event. REMOVED, получателем которого является удаленный дочерний объект.

Как будет рассмотрено в гл. 21, когда при диспетчеризации получателем события является объект в иерархии отображения, уведомление об этом событии получают данный объект и все его предки. Следовательно, когда возникает событие Event. ADDED, уведомление о добавленном дочернем объекте получают сам объект, его новый родительский контейнер и все предки данного контейнера. Подобным образом, когда возникает событие Event. REMOVED, уведомление об удаленном дочернем объекте получают сам объект, его старый родительский контейнер и все предки данного контейнера. Таким образом, события Event. ADDED и Event. REMOVED могут использоваться двумя различными способами:

? экземпляр класса DisplayOb j ectContainer может использовать эти события, чтобы определить, когда у него появляется или теряется отображаемый потомок;

? экземпляр класса Di spl а у Ob j ect может использовать данные события, чтобы определить, когда он будет добавлен в родительский контейнер или удален из него.

Рассмотрим обобщенный код, который демонстрирует описанные сценарии, начиная с контейнера, определяющего факт появления нового потомка.

Сначала мы создадим два объекта Sprite: один из них будет играть роль контейнера, а другой — дочернего объекта:

var container:Sprite = new Sprite( ); var child:Sprite = new Sprite( ):

Теперь мы создадим метод-приемник addedLi stener ( ), который будет регистрироваться в объекте container для получения событий Event. ADDED:

private function addedListener (e:Event):void { trace(«Added was triggered»):

}

После этого мы регистрируем метод addedLi stener ( ) в объекте container: contai пег. addEventLi stener(Event. ADDED, addedLi stener); Наконец, мы добавляем объект child в объект container: contai пег. addChi1d(chi1d);

При выполнении предыдущего кода среда Flash выполняет диспетчеризацию события Event. ADDED, получателем которого является объект child. В результате, поскольку объект container является отображаемым предком объекта child, на фазе всплытия события будет вызвана функция addedLi stener ( ), зарегистрированная в объекте container (дополнительную информацию по фазе всплытия можно найти в гл. 21).

I Когда событие Event. ADDED вызывает приемник события на фазе захвата или всплы-& d т тия’ МЬ| знаем/ что У объекта, в котором зарегистрирован приемник, появился новый -^-3?«4 отображаемый потомок.

Теперь добавим новый дочерний объект в объект child, превратив container в гордого прародителя:

var grandchild:Sprite = new Sprite( ); chi1d. addChi1d(grandchiId);

При выполнении предыдущего кода среда Flash снова осуществляет диспетчеризацию события Event. ADDED, получателем которого на этот раз является объект grandchild, и на фазе всплытия вновь вызывается метод addedLi stener ( ). Поскольку приемник вызван на фазе всплытия, мы знаем, что у объекта container появился новый потомок, но не уверены, является ли этот потомок непосредственным ребенком объекта container. Чтобы определить это, мы проверяем, совпадает ли значение переменной parent объекта child с объектом container, как показано в следующем коде:

private function addedListener (e:Event):void { // Помните, что переменная Event. currentTarget ссылается на объект, // в котором зарегистрирован выполняемый в настоящий момент приемник, -// в данном случае, на объект container. Помните также, что переменная // Event. target ссылается на получатель события, в данном случае -// на объект grandchild.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.82
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 107
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 149
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 009
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.91
  • 04.09.2011">SageThumbs — предварительный просмотр любого файла изображения в Windows Explorer
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.50
  • 11.03.2012">Судья обязал Google и Motorola Mobility предоставить Apple данные об Android
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 075
  • 23.02.2012">Pirate Bay обещает уйти в подполье
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 064
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.117
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 092
  • 25.07.2011">Прикольные статусы на каждый день
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 104
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...