卸载内容 - 主菜单动作3

时间:2011-03-31 11:28:19

标签: flash actionscript-3 menu main flash-cs5

我是flash动作脚本3的新手并且正在努力学习。我有一个简单的菜单,有“开始游戏”选项。当用户预设“开始游戏”时,我隐藏菜单并开始游戏。现在,如果我想“退出”并进入菜单屏幕,我该怎么做?如何擦除/停止用户刚玩过的游戏?谢谢你对此事的任何帮助^^。

1 个答案:

答案 0 :(得分:0)

如果您在时间轴上编码,最简单的方法是将游戏(图形,代码等)放在自己的MovieClip中,而不是在主时间轴上。然后,您可以在游戏完成后从舞台中删除该包装器MovieClip,方法是跳转到不存在MovieClip的帧,或者在代码中使用removeChild

如果您使用的是类文件,概念是相同的:将游戏放在自己的剪辑中。在这种情况下,您的游戏会自然地包装在自己的剪辑中,因为它将是一个精灵:class Game extends Sprite。但是,您不想使用Game作为Document类,而是使用以下代码创建并将其添加到舞台:

var game:Game = new Game();
addChild(game);

同样,您可以使用removeChild(game);在游戏完成后从舞台中删除您的游戏实例。

这可以在游戏结束时删除游戏显示。 最重要的部分是,您必须删除ENTER_FRAMEKEY_DOWN以及您的游戏可能创建的任何其他听众。即使您从舞台上移除游戏,这些ENTER_FRAME处理程序也将继续运行(可能无限期)。这通常会导致错误和性能问题,因为游戏会继续运行,即使您希望它停止运行。因此,当游戏结束时,首先使用removeEventListener删除这些事件侦听器。 (如果您可以将游戏限制为尽可能少的ENTER_FRAME听众,这也很有帮助,因此这一步很容易。)然后从舞台上删除游戏剪辑是安全的。