Руководство по actionscript. часть 2, стр. 055
_
I Объект, над которым вызывается метод dispatchEvent(), является получателем собы-| тия.
Метод dispatchEvent ( ), продемонстрированный в предыдущем коде, принимает один параметр — объект Event, предоставляющий событие для диспетчеризации. Сам конструктор класса Event принимает три параметра — тип, всплывающее и отменяемое, как показано в следующем обобщенном коде:
Event(тип, всплывающее, отменяемое)
Тем не менее в большинстве случаев требуется только первый аргумент — тип; он определяет строковое имя события (в нашем случае Game. GAME OVER). Параметр всплывающее используется только в тех случаях, когда получателем события является отображаемый объект; этот параметр обозначает присутствие (true) или отсутствие (false) всплывающей фазы в цепочке диспетчеризации событий (дополнительную информацию можно найти в разд. «Пользовательские события и цепочка диспетчеризации события» гл. 21). Параметр отменяемое применяется для создания пользовательских событий с избегаемым стандартным поведением (этот вопрос рассматривается далее в подразд. «Отмена стандартного поведения для пользовательских событий» разд. «Пользовательские события»).
Чтобы зарегистрировать приемник события для нашего пользовательского события Game. GAME OVER, как и при регистрации приемника для предопределенного события, используется метод addEventListener ( ). Предположим, что по окончании игры мы хотим, чтобы класс Console выводил окно, позволяющее пользователю вернуться к панели запуска или снова сыграть в выбранную игру. Определить момент окончания игры в классе Console позволит регистрация приемника для событий Game. GAME_OVER, как показано в следующем коде:
package { import flash. display.*; import flash. events.*;
public class Console extends Sprite {
// Конструктор
public function Console ( ) { var game:Game = new Game( );
game. addEventLi stener(Game. GAME_0VER. gameOverLi stener);
private function gameOverListener (e:Event):void { traceCThe game has ended!»);
// Отображает пользовательский интерфейс «back to console» // (код не показан)
}
Обратите внимание, что тип данных событийного объекта, передаваемого в метод gameOverListener ( ), соответствует типу данных событийного объекта, изначально передаваемого в метод dispatchEvent ( ) внутри метода экземпляра endGame ( ) класса Game (как показано в предыдущем коде).