AS3:如何从actionscript类发送事件

问题描述:

我有一个由小单元和棋盘组成的小棋类应用程序。当用户移动的项目向董事会,我希望董事会电池派遣一个事件,因此董事会可以听它并调用监听AS3:如何从actionscript类发送事件

public class BoardCell extends Canvas 
{ 
    public function Sample():void 
    { 
     ....Some code 
     var e:Event = new Event("newMove") 
    dispatchEvent(e); 
    } 
} 

但是,我不能赶在父母棋盘类事件(不知道,我听它正确)

public class FrontEndBoard extends ChessBoard 
{ 

    private var initialPoition:String; 

    public function FrontEndBoard() 
    { 
     //TODO: implement function 
     this.addEventListener(Event.ADDED_TO_STAGE, addedToStage); 
     this.addEventListener("newMove", moveEvent); 
     super(); 
    } 

你有2种选择:

1),而不是this.addEventListener( “newMove”,moveEvent);做BoardCell.addEventListener(“newMove”,moveEvent);

2)具有事件布雷到父(假设BoardCell是FrontEndBoard的显示孩子,你把它设置为事件构造函数的参数)

变种E:事件=新的事件(“newMove” ,真)。

您从BoardCell类发出的事件应该冒泡,因此它会被任何父类捕获。检查Event类的构造函数参数,您可以在其中将“bubbles”标志设置为true。

我不确定FrontEndBoard和BoardCell在您的应用程序中的层次结构如何,但您可能需要告诉“newMove”事件它可以使用bubble

var e:Event = new Event("newMove", true);