将加载的swf中的符号动态链接到自定义类

时间:2012-07-30 16:02:02

标签: actionscript-3 class flash external symbols

我有一个项目,我将带有资产符号(assets.swf)的外部文件加载到主swf中,然后在需要时将符号添加到显示中。我希望与每个符号关联的类在文档类的运行时链接到自定义类。我真的想避免通过符号属性在资产fla中定义自定义类。

在AS2中,这可以通过Object.registerClass实现,如下所示:

Object.registerClass("assetID",AssetClass);
this.attachMovie("assetID", "asset_mc", 0);

因此符号独立于它在运行时链接的类。

在AS3中,我看到了对registerClassAlias的引用,但在线提供的可靠文档很少。

有没有人知道我想用registerClassAlias或其他任何方式做的事情?

感谢!!! 亚光

1 个答案:

答案 0 :(得分:3)

首先,您需要加载资产符号并保留对加载程序的引用。

assetsLoader.load(new URLRequest("assets.swf"));

加载完成后,您可以在加载的SWF ApplicationDomain中检索资产。

var assetClass:Class = assetsLoader.contentLoaderInfo.applicationDomain.getDefinition("MyAssetClass") as Class;
var asset:* = new assetClass();

注意: MyAssetClass应在assets.swf内定义!

如果您想了解更多信息,you can read this article