课间调度事件 [英] Dispatching events between classes
问题描述
我有一个自定义事件类
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));
}
Another class listen to this event. This class is extending SpriteVisualElement.
另一类监听此事件。此类扩展SpriteVisualElement。
public class SpectrumVisualizer extends `SpriteVisualElement`:
{
public function SpectrumVisualizer()
{
this.addEventListener(FFTDrawEvent.DRAW_EVENT, draw);
}
Unfortunately this doesn't work. The event is dispatched (returns with true), but the Event listener is never triggered.
不幸的是,这并不正常工作。该事件被分派(收益与真正的),但该事件侦听器永远不会触发。
Both class (Dispatcher & Listener) are Child class of a MXML application. Also listen to the event in the parent MXML application doens't work. Listen to the event in the dispatching class itself somehow works.
这两个类(分派及放大器,监听器)是儿童类MXML应用程序。也听父MXML应用程序好好尝试一下工作的情况。收听调度类本身以某种方式的事件。
I have to feeling that the EventDispatcher class is not the right one to dispatch events to a mxml application or respectivly AS classes, which extend/inherent from a MXML component class.
我要的感觉,EventDispatcher类是不正确的调度事件到MXML应用程序或respectivly AS类,扩展/固有从MXML组件类。
Anybody can help me with that?
有人能帮助我吗?
推荐答案
您应该侦听调度的事件。在你的情况, ToneGenerator
的实例分派事件和 SpectrumVisualizer
正在听 - 这是行不通的<。 / P>
听的调度类本身以某种方式活动。
Listen to the event in the dispatching class itself somehow works.
这就是它的工作的唯一办法。
That's the only way it would work.
当你调用
this.addEventListener(FFTDrawEvent.DRAW_EVENT, draw);
你告诉
这
对象调用this.draw
方法,只要它(这个
)对象调度类型的事件FFTDrawEvent.DRAW_EVENT
。将其更改为you are telling
this
object to callthis.draw
method whenever it (thethis
object) dispatches an event of typeFFTDrawEvent.DRAW_EVENT
. Change it to
toneGen.addEventListener(FFTDrawEvent.DRAW_EVENT, draw);
现在你告诉
toneGen
对象调用this.draw
方法,只要它(toneGen
)对象调度类型的事件FFTDrawEvent.DRAW_EVENT
。Now you are telling
toneGen
object to callthis.draw
method whenever it (thetoneGen
object) dispatches an event of typeFFTDrawEvent.DRAW_EVENT
.您也可以做从父MXML以下。
You can also do the following from the parent mxml.
toneGen.addEventListener(FFTDrawEvent.DRAW_EVENT, specVis.draw);
呼叫
specVis.draw
每当toneGen
对象调度类型的事件方法FFTDrawEvent .DRAW_EVENT
。Call
specVis.draw
method whenever thetoneGen
object dispatches an event of typeFFTDrawEvent.DRAW_EVENT
.这篇关于课间调度事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!