我有两个课程,我尝试从一个班级到其他班级的事件调度。在这里,我使用按钮来调用类。但派遣不起作用。
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)时,它都不会显示任何内容 调度事件的痕迹。所以请分析并给出解决方案。
答案 0 :(得分:1)
你的其他点击监听器(在EventDispatcherExample中)是否有效?
问题可能是您已将CusDispatcher声明为函数
中的局部变量var start:CusDispatcher = new CusDispatcher();
一旦功能完成,这些变量就会被清除。尝试在类的开头将其声明为类变量:
private var start:CusDispatcher;
public function EventDispatcherExample(Mc:MovieClip)...
然后将新的Dispatcher分配给它
start = new CusDispatcher();