[英]Event dispatcher
我有两个类,我尝试了从一个类到另一个类的事件分发 。 在这里,我使用按钮来调用类。 但是调度不起作用。
class name cusDispatcher.as
package
{
import flash.display.MovieClip;
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.events.MouseEvent;
import Globe;
public class CusDispatcher extends EventDispatcher
{
public function CusDispatcher():void
{
Globe.self.realstage.btn_mc.addEventListener(MouseEvent.CLICK,
doAction);
}
public function doAction(event:MouseEvent):void
{
dispatchEvent(new Event('myevent'));
}
}
}
类名EventDispatcherExample.as包{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.EventDispatcher;
import Globe;
public class EventDispatcherExample extends EventDispatcher
{
public function EventDispatcherExample(Mc:MovieClip)
{
Globe.self.realstage = Mc;
var start:CusDispatcher = new CusDispatcher();
Globe.self.realstage.addEventListener('myevent', handler);
trace("one");
}
public function handler(event:Event):void
{
trace("My Event");
}
}
}
在Adobe CC中,我使用了此实例来运行该类
var Call:EventDispatcherExample = new EventDispatcherExample(this);
每当我单击adobe flash cc中的按钮(btn_mc)时,它都不会显示任何调度事件的痕迹。因此,请对此问题进行分析并给出解决方案。
您的其他点击侦听器(在EventDispatcherExample中)是否正常工作?
问题可能是您已将CusDispatcher声明为函数中的局部变量
var start:CusDispatcher = new CusDispatcher();
函数完成后,将清除这些变量。 尝试在课程开始时将其声明为类变量:
private var start:CusDispatcher;
public function EventDispatcherExample(Mc:MovieClip)...
然后为其分配新的Dispatcher
start = new CusDispatcher();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.