我是flash动作脚本3的新手并且正在努力学习。我有一个简单的菜单,有“开始游戏”选项。当用户预设“开始游戏”时,我隐藏菜单并开始游戏。现在,如果我想“退出”并进入菜单屏幕,我该怎么做?如何擦除/停止用户刚玩过的游戏?谢谢你对此事的任何帮助^^。
答案 0 :(得分:0)
如果您在时间轴上编码,最简单的方法是将游戏(图形,代码等)放在自己的MovieClip中,而不是在主时间轴上。然后,您可以在游戏完成后从舞台中删除该包装器MovieClip,方法是跳转到不存在MovieClip的帧,或者在代码中使用removeChild
。
如果您使用的是类文件,概念是相同的:将游戏放在自己的剪辑中。在这种情况下,您的游戏会自然地包装在自己的剪辑中,因为它将是一个精灵:class Game extends Sprite
。但是,您不想使用Game作为Document类,而是使用以下代码创建并将其添加到舞台:
var game:Game = new Game();
addChild(game);
同样,您可以使用removeChild(game);
在游戏完成后从舞台中删除您的游戏实例。
这可以在游戏结束时删除游戏显示。 最重要的部分是,您必须删除ENTER_FRAME
,KEY_DOWN
以及您的游戏可能创建的任何其他听众。即使您从舞台上移除游戏,这些ENTER_FRAME
处理程序也将继续运行(可能无限期)。这通常会导致错误和性能问题,因为游戏会继续运行,即使您希望它停止运行。因此,当游戏结束时,首先使用removeEventListener
删除这些事件侦听器。 (如果您可以将游戏限制为尽可能少的ENTER_FRAME
听众,这也很有帮助,因此这一步很容易。)然后从舞台上删除游戏剪辑是安全的。