2011-03-31 81 views
0

我是新来的Flash动作3,并试图学习。我有一个简单的菜单,有“开始游戏”选项。当用户预设“开始游戏”时,我隐藏菜单并开始游戏。现在,如果我想要“退出”并转到菜单屏幕,我该怎么做?我如何清除/停止用户刚玩过的游戏?感谢您对这件事的任何帮助^^。卸载内容 - 主菜单动作3

回答

0

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

如果您使用的是类文件,其概念是相同的:将游戏放入自己的剪辑中。在这种情况下,你的游戏会被封装在自己的剪辑中,因为它会是一个Sprite:class Game extends Sprite。但是,而不是使用游戏作为文档类,你要创建并添加它使用类似于下面的代码阶段:

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

同样,当游戏使用做,你可以只从舞台中删除您的游戏实例removeChild(game);

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