【发布时间】:2010-11-03 17:10:03
【问题描述】:
我们正在为我们的一个欧洲客户开发一个小型 Flash 游戏,他们要求我们以这样一种方式开发我们的 Flash 游戏,以便他们可以将我们的 SWF 游戏动态加载到他们的 ActionScript 3 项目中。
基本上,他们有一个控制台,可以加载许多其他 Flash 游戏,包括我们自己的,这取决于玩家在“选择您的游戏”屏幕上按下的按钮。
基本上,我们有一个在 Flash Professional CS4 中创作的 FLA 项目,所有内容基本上都是一个简单的 Flash 游戏。当我们通过 Ctrl+Enter 测试游戏或双击运行编译好的 SWF 文件时,一切正常,游戏运行完美,每个人都是快乐的兔子。
我们需要掌握的是将我们的 SWF 加载到我们的客户 AS3 项目中,该项目基本上是在 Flex Builder 3 中创建的外部 ActionScript 3 项目。客户向我们发布了以下代码来加载 SWF:
var myGame:FunkyChickenGame = new FunkyChickenGame();
addChild(myGame);
...在客户端应用程序的 ActionScript 3 应用程序构造函数中执行,或者可能是“选择您的游戏”屏幕上按下的按钮的事件处理程序。
我们尝试在 Flex Builder 中创建一个空白的 AS3 项目,并尝试按照我上面的 sn-p 加载 SWF。我们在外部 SWF 文档类中的所有跟踪都按预期显示在 Flex Builder 控制台视图中,因此代码运行良好。
我们遇到的问题是,尽管调用了 addChild(myGame)...我们没有看到任何图形,只是封装 AS3 项目的默认背景颜色。
但是请注意,当我们在 Windows 中通过双击 Game.swf 文件运行 SWF 时,一切都完美执行,游戏运行没有任何缺陷和故障。
对此主题的任何帮助将不胜感激。提前谢谢你。
【问题讨论】:
-
您没有收到任何错误?对我来说,这听起来像是 Game.swf 中的空阶段引用。您能想到在舞台参考存在之前您可能会尝试与舞台交谈的任何地方吗?在 addChild(myGame); 之前阶段引用将不存在;执行。
-
FunkyChickenGame 的构造函数中有 Event.ADDED_TO_STAGE 事件的事件监听器吗?这将允许您监听您的游戏何时添加到舞台(通过您的客户端的 addChild() 方法),然后您可以在触发该事件时初始化您的游戏。
标签: actionscript-3 flash