繁体   English   中英

将 SWF 加载到 ActionScript 3 项目 (Flex Builder)

[英]Loading a SWF into an ActionScript 3 project (Flex Builder)

我们正在为我们的一个欧洲客户开发一个小的 Flash gamelet,他们要求我们以这样的方式开发我们的 Flash 游戏,以便他们可以动态地将我们的 SWF 游戏加载到他们的 ActionScript 3 项目中。

基本上,他们有一个控制台,可以加载许多其他 Flash 游戏,包括我们自己的游戏,具体取决于玩家在“选择您的游戏”屏幕上按下的按钮。

基本上,我们有一个 FLA 项目,我们正在 Flash Professional CS4 中创作,一切基本上都是一个简单的 Flash 游戏。 当我们通过 Ctrl+Enter 测试游戏或双击运行编译后的 SWF 文件时,一切正常,游戏运行完美,每个人都是快乐的兔子。

我们需要掌握的是将我们的 SWF 加载到我们的客户 AS3 项目中,它基本上是在 Flex Builder 3 中创建的外部 ActionScript 3 项目。客户向我们发布了以下代码来加载 SWF:

var myGame:FunkyChickenGame = new FunkyChickenGame();
addChild(myGame);

...在客户端应用程序的 ActionScript 3 应用程序构造函数中执行,或者可能是在“选择您的游戏”屏幕上按下的按钮的事件处理程序。

我们尝试在 Flex Builder 中创建一个空白的 AS3 项目,并尝试按照我上面的代码片段加载 SWF。 我们在外部 SWF 文档 class 中的所有跟踪都按预期显示在 Flex Builder 控制台视图中,因此代码运行完美。

我们遇到的问题是尽管调用了 addChild(myGame)...我们没有看到任何图形,只有封装 AS3 项目的默认背景颜色。

但是请注意,当我们通过双击 Windows 中的 Game.swf 文件运行 SWF 时,一切都完美执行,游戏运行没有缺陷和故障。

对此主题的任何帮助将不胜感激。 先感谢您。

您需要使用的是 Loader class 的实例,如下所示:

var loader:Loader = new Loader();

// you'll need to write a method named onLoaded to capture the COMPLETE event
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);

loader.load(new URLRequest("game.swf"));
addChild(loader);

创建 class 的实例是它能得到的工资。 您的客户发布推荐信的方式很有趣。

但是FunkyChickenGame可能是由可以启动您的游戏的客户端创建的 class。 也许游戏嵌入在他们的 flash 应用程序中,但这意味着加载时间很长。 如果确实有很多游戏是这样“加载”的。

我的建议是您不要使用阶段、root 或任何可以链接到主应用程序而不是您的游戏的属性,并让客户决定他想如何加载它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM