事件调度员
Event dispatcher
我有两个 class,我尝试 事件调度 从一个 class 到另一个 class。在这里,我使用按钮来调用 class。但是 dispatch 不起作用。
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'));
}
}
}
class 名字 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 中,我使用此实例 运行 class
var Call:EventDispatcherExample = new EventDispatcherExample(this);
每当我单击 adobe flash cc 中的按钮 (btn_mc) 时,它不显示任何内容
调度跟踪 event.So 请分析并给出解决方案。
您的其他点击侦听器(在 EventDispatcherExample 中)是否正常工作?
问题可能是您已将 CusDispatcher 声明为函数中的局部变量
var start:CusDispatcher = new CusDispatcher();
一旦函数完成,这些变量就会被清除。尝试在 class 的开头将其声明为 class 变量:
private var start:CusDispatcher;
public function EventDispatcherExample(Mc:MovieClip)...
然后将您的新 Dispatcher 分配给它
start = new CusDispatcher();
我有两个 class,我尝试 事件调度 从一个 class 到另一个 class。在这里,我使用按钮来调用 class。但是 dispatch 不起作用。
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'));
}
}
}
class 名字 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 中,我使用此实例 运行 class
var Call:EventDispatcherExample = new EventDispatcherExample(this);
每当我单击 adobe flash cc 中的按钮 (btn_mc) 时,它不显示任何内容 调度跟踪 event.So 请分析并给出解决方案。
您的其他点击侦听器(在 EventDispatcherExample 中)是否正常工作?
问题可能是您已将 CusDispatcher 声明为函数中的局部变量
var start:CusDispatcher = new CusDispatcher();
一旦函数完成,这些变量就会被清除。尝试在 class 的开头将其声明为 class 变量:
private var start:CusDispatcher;
public function EventDispatcherExample(Mc:MovieClip)...
然后将您的新 Dispatcher 分配给它
start = new CusDispatcher();