我有一些代码,添加一个“后退”按钮的舞台,有自己的代码,并点击它删除按钮,并将用户带回标题屏幕。但是,当“后退”按钮重新引入舞台时,其所有听众都无法工作。Actionscript 3:监听器不工作后,孩子被删除,然后再次添加
public class BACK extends SimpleButton {
public function BACK() {
// constructor code
trace('back button on stage');
addEventListener(Event.ADDED_TO_STAGE, startUp);
}
function startUp(ev:Event): void{
addEventListener(MouseEvent.CLICK, gotoTitle);
addEventListener(Event.REMOVED_FROM_STAGE, backBtnCleanUp);
}
function gotoTitle(ev:MouseEvent): void{
trace('gototitle called');
MovieClip(root).gotoTitle();
}
function backBtnCleanUp(ev:Event): void{
trace('back button cleanup called');
removeEventListener(Event.ADDED_TO_STAGE, startUp);
removeEventListener(MouseEvent.CLICK, gotoTitle);
removeEventListener(Event.REMOVED_FROM_STAGE, backBtnCleanUp);
}
}
跟踪功能在首次添加到舞台上时执行,但不会在被删除后再次添加时执行。这是来自Main的代码,它们都添加并删除它。
function gotoHelp(): void{ // transitions to the help screen
cleanTitle();
addChild(helpBG);
addChild(backBtn);
backBtn.x = 550;
backBtn.y = 200;
}
function gotoTitle(): void{ //goes to the title screen
trace('going to title');
removeChild(backBtn);
removeChild(helpBG);
titleStartUp();
}
你在哪里实际上构建您的“后退”按钮的新实例? – Iggy 2014-11-01 20:44:53
在gotoHelp函数中,它被命名为'backBtn'。它与BACK类相关联。或者我在这方面不理解“构造”一词的含义? – 2014-11-01 20:52:22