我今天在编码时发现了一些奇怪的东西。我找不到今天发生在我身上的事情的解释。
我已经创建了按钮并向其添加事件侦听器。
private function drawButtons():void{
survivorModeBtn = new SurvivorModeBtn();
trace("I registered Event Listener with button here");
survivorModeBtn.addEventListener(MouseEvent.CLICK,onSurvivorModeBtnClick);
addChild(survivorModeBtn);
}
private function onSurvivorModeBtnClick(e:MouseEvent):void{
trace("I clicked on btn here");
//I will dispatch event here which runs second part of code
mainMenuViewEvent = new MainMenuViewEvent("onSurvivorModeIsClicked");
hideButtons();
dispatchEvent(mainMenuViewEvent);
}
Dispatched 事件将运行这些代码部分:
public function createClickToStart():void{
trace("here I register event listener MouseEvent.Click");
stage.addEventListener(MouseEvent.CLICK,onClick);
}
private function onClick(e:MouseEvent):void{
trace("onClick()");
}
当我运行我的程序并单击第一个按钮时。我在控制台中得到了这个输出:
我在这里用按钮注册了事件监听器 我在这里点击了 btn 我在这里注册了事件监听器 MouseEvent.Click onClick()
我不明白我怎么能看到“onClick()”消息,如果我只点击第一个按钮,即使在那个时候也没有用 CLICK 事件重新注册。
感谢您解决我的问题。