В ActionScript 3 все события имеют свой класс. Базовые события расположены в классе Event (
flash.events.Event), события связанные с мышкой в классе MouseEvent (
flash.events.MouseEvent). Остальные классы событий расположены в пакете flash.events и все они потомки базового класса Event.
Вызывая EventDispatcher.dispatchEvent(), в качестве аргумента нужно передать экземпляр класса события Event (или любой потомок от Event). Например, для рассылки события "enterFrame" вызываем dispatchEvent, передавая ему экземпляр класса Event с типом (type) "enterFrame".
Код:
dispatchEvent(new Event("enterFrame"));
Когда вызывается функция обработчика события, ей в качестве аргумента передается этот экземпляр класса, из свойств которого можно узнать подробности о событии. Например, в type записан тип события.
Код:
addEventListener("enterFrame", eventHandler);
dispatchEvent(new Event("enterFrame"));
...
private function eventHandler(event:Event):void {
trace(event.type); // "enterFrame"
}
Тип события это строка (String), все возможные типы событий записаны в константах классов событий. Например, событие "enterFrame" лучше записывать так: Event.ENTER_FRAME. События от мышки расположены в классе MouseEvent, например, событие по клику мышки: MouseEvent.CLICK. Для работы с событиями лучше использовать эти константы, чем писать тип события строкой, это убережет вас от ошибок и опечаток. Пример выше правильнее записать так:
Код:
addEventListener(Event.ENTER_FRAME, eventHandler);
dispatchEvent(new Event(Event.ENTER_FRAME));
Для генерации своих событий, можно использовать класс Event, указывая свои типы событий или же, создать класс потомок от Event, прописав в нем константы новых типов событий.