2010-10-28 3 views
0

Я создал обработчик события/Слушатель так:Как обработать настраиваемое событие в ActionScript 3?

import flash.events.Event; 

public class DanielEvent extends Event { 

    public var data:*; 
    public static const APP_STARTED:String = "APP_STARTED"; 

    public function DanielEvent(n:String, data:*){ 
     this.data = data; 
     super(n) 
    } 
} 

Прослушивание события с помощью:

addEventListener(DanielEvent.APP_STARTED, appStarted); 

Диспетчерская событие по:

dispatchEvent(new DanielEvent("APP_STARTED", "test")) 

И получать данные по:

private function appStarted(e:Event){ 
    trace(e.data) 
} 

Но я получаю ошибку:

Access of possibly undefined property data through a reference with static type flash.events:Event.

ответ

2

Вы должны использовать свой собственный тип события в обработчик событий, если вы хотите получить доступ к data недвижимости:

private function appStarted(e:DanielEvent): void { 
    trace(e.data); 
} 
+0

О, отлично !, Спасибо за вашу помощь! – Daniel

1

обработчик события передается DanielEvent, а не событие:

private function appStarted(e:DanielEvent):void 
    { 
    trace(e.data); 
    } 

также. Вы должны также использовать константу для отправки вместо того, чтобы передать строку, как вы сделали для слушателя:

dispatchEvent(new DanielEvent(DanielEvent.APP_STARTED, "test")); 

и не забудьте переопределить клон(), если вы планируете диспетчерские это событие более чем один раз.

public override function clone():Event 
    { 
    return new DanielEvent(n, data); 
    } 
Смежные вопросы