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

Поскольку при регистрации метода hitListener ( ) в конструкторе класса PlayerShip используется максимально возможный приоритет, из всех прием-

ников события GameManager. SHIP_HIT класса PlayerShip этот приемник всегда будет вызываться первым. Если объект PlayerShip является уязвимым и возникает событие GameManager. SHIP_HIT, метод hitListener ( ) не выполняет никаких действий. Но если объект PlayerShip не является уязвимым и возникает событие GameManager. SHIP_HIT, метод hitListener ( ) сначала поглощает это событие, а затем выполняет диспетчеризацию нового события PlayerShip. HIT DEFLECTED. После этого приемники, зарегистрированные для события PlayerShip. HIT_DEFLECTED, воспроизводят специальную анимацию и звук, которые сообщают о том, что корабль не был поврежден.

Далее представлен код метода hitListener ( ); обратите внимание на использование метода stopImmediatePropagation ( ):

private function hitListener (e:Event):void { if (invincible) { // Исключаем получение другими приемниками объекта PlayerShip // уведомления о возникновении события e. stopImmediatePropagation( ); // Рассылаем новое событие

dispatchEvent(new Event(PIayerShiр. HIT_DEFLECTED, true));

}

}

В предыдущем сценарии с классом PlayerShip стоит отметить, что, хотя объект PlayerShip может предотвратить вызов своих собственных приемников события GameManager. SHIP HIT, он не может предотвратить вызов приемников события GameManager. SHIP HIT, зарегистрированных в его отображаемых предках. В частности, любые приемники, зарегистрированные для фазы захвата в отображаемых предках объекта PlayerShip, будут всегда получать уведомление о возникновении события GameManager. SHIP_HIT, даже если объект PlayerShip поглотит это событие. Однако после того, как объект PlayerShip поглотит событие GameManager. SHIP_HIT, его предки не получат уведомление в фазе всплытия.

Теперь перейдем ко второму сценарию с использованием метода stopImmediatePropagation ( ), в котором программа желает, чтобы никакие приемники не отвечали на данное событие. Предположим, мы создаем набор компонент пользовательского интерфейса, которые автоматически переходят в неактивное состояние, когда среда выполнения теряет фокус операционной системы, и возвращаются в активное состояние, когда среда получает фокус операционной системы. Чтобы определить момент получения или потери фокуса операционной системы, наши компоненты регистрируют приемники для внутренних событий Event. ACTIVATE и Event. DEACTIVATE (дополнительные сведения об этих событиях можно найти в гл. 22).

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

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

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

Полезные ссылки
Случайные записи
  • 04.09.2011">MapleSim 5 – инструмент, позволяющий физически моделировать объекты
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 069
  • 24.02.2011">Руководство по actionscript. часть 6, стр. 111
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.76
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.74
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 081
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.62
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 011
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.26
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 093
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 072
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.170
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.134
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 125
  • 18.08.2012">Apple назвала условия урегулирования министерства юстиции несправедливыми
Опрос

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

View Results

Loading ... Loading ...