我有一点问题。我在游戏开始前创建了一个菜单,其中包含“开始”,“加载”和“退出”按钮。它位于一个名为IntroScreen.as的新类中。
因此,引擎类(Engine.as)在电影之后调用Introscreen:
private function ouvertureMenu(e:MouseEvent):void{
removeChild(opening);
introScreen.visible = true;
options.changeMusic(“”);
从这里完美。
当我点击“加载”按钮时,它会调用另一个名为SaveRestore.as的类,其中包含保存和恢复的所有功能。 因此,窗口保存/恢复打开。
但是当我恢复游戏时,saverestore窗口关闭但不是Introscreen! (我听说(音乐背景)我的游戏是在后台加载的。)
所以当我点击“恢复”时,我想让我的IntroScreen不可见。
我不明白为什么它不起作用。我在SaveRestore.as中添加了一个“removeChild(introScreen)”:
…
// Restore game data
if(allSaveData){
puzzle.restorePuzzles(allSaveData.puzzleStatus);
inv.restoreInv(allSaveData.currentInv, allSaveData.allInv);
options.restoreOptions(allSaveData.optset);
Engine.newBack = allSaveData.playerLoc.room;
addEventListener(“repose”, reposePlayer);
stageRef.dispatchEvent(new Event(“changeBackground”));
showConfirm(“restored”, slotNum);
removeChild(introScreen);
dispatchEvent(new Event(“closeThis”));
} else {
trace (“No save data found”);
Engine.restoring = false;
}
你知道可能是什么问题吗?为什么introscreen仍然可见(removeChild不工作) (我正在使用ALPACA open source code)
答案 0 :(得分:0)
看起来introScreen的所有者是Engine,这是您需要从中调用removeChild的地方。也许像这样解决它?
//in Engine.as:
public function removeIntro():void
{ //logic here, including removeChild(...)
}
//in SaveRestore.as
engineRef.removeIntro();