1
我试图让我的脑袋轮到使用dispatchEvent捕获事件“Beep2”需要什么。即使Im能够产生dispatchEvent“Beep2 true”的跟踪结果,“DoNext”函数也不会触发。AS3自定义事件没有触发文档类(使用DispatchEvent动作)
此代码使用CustomEvent类来扩展事件类。到目前为止,它对我的知识极限有权,所以任何帮助,将不胜感激。 :)
谢谢。
包 //Main.as(Document类)
import flash.display.MovieClip;
import flash.events.Event;
public class Main extends MovieClip
{
public var ftasks:MovieClip;
public function Main()
{
ftasks = new filetasks();
addChild(ftasks);
ftasks.addEventListener(CustomEvent.BEEP2, DoNext);
}
//not firing
public function DoNext (evt:Event)
{
trace("DoNext");
}
}
包 //CustomEvent.as
//Extend Event class.
import flash.events.Event;
public class CustomEvent extends Event
{
public static const BEEP1 ="Beep1";
public static const BEEP2 ="Beep2";
//Declare Event Constructor
public function CustomEvent(type:String, bubbles:Boolean)
{
super(type, bubbles);
type = this.type;
bubbles = this.bubbles;
trace(type, bubbles);
}
public override function clone():Event
{
return new CustomEvent(type, bubbles);
}
}
包 //filetasks.as
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
public class filetasks extends MovieClip
{
public var Ref;
public function filetasks (_Ref)
{
Ref = _Ref;
dispatchEvent(new CustomEvent(CustomEvent.BEEP2, true));
}
public function done (evt:MouseEvent)
{
dispatchEvent(new CustomEvent(CustomEvent.BEEP1, true));
}
}
是的,你的权利,快速删除在filetask函数的构造函数中的调度事件做了窍门... – 2011-04-28 20:44:12
感谢@Tobias的快速响应。 – 2011-04-28 20:47:28