我的问题比标题所暗示的要复杂一些。我在一家拥有 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 代码,这会否定在我们的预加载器中加载它的意义。
有没有人有什么建议?
谢谢!