我有一个自定义事件类
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);
}
不幸的是这不起作用。事件已调度(返回 true),但事件侦听器从未被触发。
这两个类(Dispatcher 和 Listener)都是 MXML 应用程序的子类。另外,在父 MXML 应用程序中监听事件也不起作用。监听调度类本身的事件以某种方式起作用。
我必须感觉到 EventDispatcher 类不适合将事件分派到 mxml 应用程序或相应的 AS 类,它们是从 MXML 组件类扩展/继承的。
有人可以帮我吗?