我已经为我的游戏创建了一个带有按钮的菜单,以及一个名为 Menu 的单独 .fla 文件。我的实际游戏是另一个名为 Game.fla 的 .fla 文件。我想知道在游戏开始之前加载此菜单的最佳方法是什么?
谢谢。
我已经为我的游戏创建了一个带有按钮的菜单,以及一个名为 Menu 的单独 .fla 文件。我的实际游戏是另一个名为 Game.fla 的 .fla 文件。我想知道在游戏开始之前加载此菜单的最佳方法是什么?
谢谢。
从 Menu.fla 加载 swf 输出并检查加载程序的 progressEvent。在 Menu.swf 完全加载和初始化之前,不要显示游戏屏幕。
来自 OP 的更多详细评论:您可以http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#load%28%29加载外部 swfs。init 事件将标记 swf 的动作脚本已开始执行。OTOH,完成事件会告诉所有 swf 字节都已加载。
我建议您使用 Menu.fla 创建一个 .swc,然后将该 .swc 添加到您的 Game.fla
如果您使用的是 CS6,请确保为要在代码中创建实例的任何 MovieClip 设置链接。
在库路径选项卡上的操作脚本设置中,您可以添加一个 .swc,该 .swc 将在编译时包含在您的 .swf 中。
在您的代码中,您现在可以创建一个实例并添加到显示列表:
// Assuming MainMenu was a movieclip with linkage set in your .swc
var mainMenu:MainMenu = new MainMenu;
addChild(mainMenu);
我应该注意,这不会在运行时加载 .swc,它会在编译时将 .swc 包含到您的 .swf 中。在大多数情况下,我会推荐这种方法过度加载 .swf。我可能不需要的情况是,如果有大量内容不需要一次全部使用。这将允许您最大程度地减少您正在使用的内存量并减少主 .swf 的 .swf 大小,以便更快地加载。
每当您在运行时加载 .swf 时,都会增加另一层复杂性,因此除非您有充分的理由这样做,否则我不建议您这样做。根据您的描述,这听起来不像是我在运行时加载外部 .swf 的情况。