0

我有一个小问题。我在游戏开始前创建了一个菜单,带有“开始”、“加载”和“退出”按钮。它位于一个名为 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;
}

你知道可能是什么问题吗?为什么介绍屏幕仍然可见(removeChild 不起作用)(我使用的是ALPACA 开源代码

4

1 回答 1

0

看起来 introScreen 的所有者是 Engine,这就是您需要从中调用 removeChild 的地方。也许像这样解决它?

  //in Engine.as:
  public function removeIntro():void
  { //logic here, including removeChild(...)
  }

  //in SaveRestore.as
  engineRef.removeIntro();
于 2013-08-29T11:31:23.550 回答