当你可以保存并恢复游戏时,我正在AS3中制作游戏。
玩家可以在游戏过程中在内窥镜上加载他保存的游戏。
我有一个错误(不是很重要,因为游戏仍然有效,但我想纠正以便干净),因为我不知道如何把它放在代码中。
因此,当玩家在Introscreen点击“加载”时,会打开一个窗口,在那里他可以选择要恢复的游戏。
当他选择游戏时,他点击它并且IntroScreen和恢复窗口消失。 这是代码:
if(allSaveData){
..
dispatchEvent(new Event("closeThis"));
this.parent.removeChild(introScreen);
}
但是当他在比赛中并希望恢复时。他点击“esc”,然后出现恢复窗口。但是IntroScreen不在这里。所以当他恢复他的游戏时,我的错误是“this.parent.removeChild(introScreen);”因为IntroScreen不在这里。
我试过这个:
if(allSaveData){
..
dispatchEvent(new Event("closeThis"));
}
if (introScreen.visible == true){
this.parent.removeChild(introScreen);
}
但它不起作用。 你知道我怎么能告诉代码“如果内部屏幕在这里关闭它,如果不是这样”?
感谢您的帮助!
答案 0 :(得分:2)
visible
用于显示/隐藏显示对象。您无法使用它来确定对象是否已添加到显示列表中。有很多选择可以实现这一目标。
选项1:检查parent
的{{1}}属性。
introScreen
选项2:使用if (introScreen.parent) {
introScreen.parent.removeChild(introScreen);
}
方法。
contains
选项3:使用try-catch块并忽略错误。
if (this.parent.contains(introScreen)) {
this.parent.removeChild(introScreen);
}
答案 1 :(得分:0)
尝试 introScreen.parent.removeChild(introScreen)