0

我的问题比标题所暗示的要复杂一些。我在一家拥有 20 款 Flash 游戏的公司工作。我们的玩家也有他们可以自定义的头像,这些头像在我们的游戏中使用。

我们有一个文件 Avatar.swf,它由我们的预加载器加载,然后传递到 GameName.swf。我想使用这个 Avatar 影片剪辑并创建一个工厂类,这样我们就可以在我们的游戏中拥有它的许多实例。

我可以毫无问题地从加载器中获取 Avatar 影片剪辑的实例。我知道有两种方法可以从 AS3 中的实例获取构造函数。

1.) Object(myInstance).constructor 作为类

2.) getDefinitionByName(getQualifiedClassName(myInstance)) 作为类

1 间歇性地工作,但在 3 中大约有 1 次我得到结果实例抛出的空引用错误。我不知道为什么,但这不是一个一致的问题。就好像脚本在那里,但资产库不在那里。它发生在调试模式和发布模式下。使用 FlashDevelop 和 CS5.5 编译时也会发生这种情况。

2 次抛出错误 #1065:未定义变量头像。我知道这是因为我没有导入 Avatar 包并声明了 Avatar 的虚拟实例,但这就是重点。例如,如果我们通过添加一件新衣服来更改头像,我们绝对不希望必须遍历我们不断扩大的游戏列表并重新编译它们。换句话说,我不想在每个游戏中都使用 Avatar 代码,这会否定在我们的预加载器中加载它的意义。

有没有人有什么建议?

谢谢!

4

1 回答 1

1
  1. 确保将 Avatar.swf 加载到相同的应用程序域中
  2. 确保您至少使用过每个头像类一次(例如在 Avatar.swf 的文档类中),或者如果它们是 Flash 库项目,请将它们导出到 Avatar.swf 的第 1 帧中。
于 2012-05-07T11:36:01.247 回答