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);