У меня есть пользовательский класс событий
public class FFTDrawEvent extends Event {
public static const DRAW_EVENT:String = "drawEvent";
private var _param:Array = new Array();
public function FFTDrawEvent(type:String, __param:Array, bubbles:Boolean=true, cancelable:Boolean=false) {
_param = __param;
super(type, bubbles, cancelable);
}
public function get param():Array {
return _param;
}
}
Это событие отправлено классом, который расширяет EventDispatcher
:
public class ToneGenerator extends EventDispatcher {
public function someFunction():void {
this.dispatchEvent(new FFTDrawEvent(FFTDrawEvent.DRAW_EVENT,_param));
}
Другой класс слушает это событие. Этот класс расширяет SpriteVisualElement.
public class SpectrumVisualizer extends `SpriteVisualElement`:
{
public function SpectrumVisualizer()
{
this.addEventListener(FFTDrawEvent.DRAW_EVENT, draw);
}
К сожалению, это не работает. Событие отправляется (возвращается с истиной), но прослушиватель событий никогда не запускается.
Оба класса (Dispatcher & Listener) являются дочерними классами приложения MXML. Также прослушивание события в родительском приложении MXML не работает. Прослушивание события в самом диспетчерском классе как-то работает.
Мне кажется, что класс EventDispatcher не подходит для отправки событий в приложение mxml или соответственно в классы AS, которые расширяются / свойственны классу компонентов MXML.
Кто-нибудь может мне помочь с этим?