我有一个由棋盘和棋盘组成的小型国际象棋应用程序。当用户将项目移动到电路板时,我希望电路板单元发送一个事件,以便电路板可以收听它并呼叫听众
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();
}
答案 0 :(得分:5)
你有两个选择:
1)而不是this.addEventListener(“newMove”,moveEvent);执行BoardCell.addEventListener(“newMove”,moveEvent);
2)将事件布局到父级(假设BoardCell是FrontEndBoard的显示子级,您将其设置为事件构造函数中的参数)
var e:Event = new Event(“newMove”,true)。
答案 1 :(得分:4)
我不确定FrontEndBoard和BoardCell在您的应用程序中的层次结构,但您可能需要告诉“newMove”事件它可以bubble。
var e:Event = new Event("newMove", true);
答案 2 :(得分:1)
从BoardCell类发送的事件应该冒泡,因此它会在任何父类中捕获。检查Event类的构造函数参数,您可以在其中将“bubbles”标志设置为true。