我在使用监听器捕获自定义事件时遇到了一些问题。
我有许多称为键的对象。单击每个键时,将调度自定义事件,如下所示:
public class Key extends Sprite
{
private var letter:String;
public static const CLICKED:String = "clicked";
private function keyClicked(e:MouseEvent):void {
this.removeEventListener(MouseEvent.CLICK, keyClicked, false);
this.mouseEnabled = false;
dispatchEvent(new Event(CLICKED));
}
}
所有键都是键盘对象的子键。键盘对象的父节点之一有一个像这样的事件监听器:
addEventListener(Key.CLICKED, keyboardGuess);
调用
public function keyboardGuess(e:Event):void {
trace("event received");
var letter:String = e.target.getLetter();
trace(letter);
} //there will be other functionality in here when I get it listening
然而,虽然我可以说我成功地派出了这个活动,但是我的听众从不接受它。我已经疯了一个多小时了;你能帮我弄清楚发生了什么事吗?
答案 0 :(得分:1)
自定义事件的bubbles值应该为true,因此包含Key的对象可以接收该事件。如果bubbles值为false,则只有派发事件的对象才能收到该事件,就像Key。
一样关于bubbles。
尝试
dispatchEvent(new Event(CLICKED, true));