在我的主要内容中,我有一个按钮菜单,并添加了一个自己的类,我想要它,这样当我点击“查看地图”按钮时,它会删除按钮,因此地图可以被查看,问题是当特定按钮被删除时,似乎停止了事件监听器的工作。
这是代码,我试图尽可能地将其删除,以便向您展示问题的部分。
public function Main () {
drawButtons(); // draws all the buttons and adds them to the buttonList array
// the buttons are all made from a "ButtonClass".
addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
public function onMouseUp(Event:MouseEvent):void {
else if (Event.target.name == "viewMapB") {
// imagine removeChild(buttonList[1-8]) commands here.
removeChild(buttonList[9]); // when this is removed, eventlistener wont work
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressedUp);
stage.focus = stage; // This line fixed the problem
}
}
private function keyPressedUp(event:KeyboardEvent):void {
trace("ping");
// goneBack("main"); // brings back the menu that was removed
}
实验似乎表明,只有当我删除buttonList [9]时才会出现这个问题,但到目前为止我能想到的所有工作都拒绝工作。
编辑1:显示mouseEvent的来源。
编辑2:尝试将stage.addeventlistenever添加到main。没有运气,但发现点击按钮后,如果我之后再次点击(地图覆盖了整个舞台区域),则eventlistener再次工作。现在试图弄清楚为什么......
编辑3:似乎问题与焦点有关。添加“stage.focus = stage;”在KEY_UP事件之后,侦听器似乎已经修复了它。每天学习东西!还要感谢那些帮助解决这个奇怪问题的人。