2011-04-28 60 views
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)); 
    } 
} 

回答

2

我认为你的问题在于,事件被解雇了你甚至添加了EventListener。

+1

是的,你的权利,快速删除在filetask函数的构造函数中的调度事件做了窍门... – 2011-04-28 20:44:12

+0

感谢@Tobias的快速响应。 – 2011-04-28 20:47:28