我有一个 FLA 文件,其中包含库中的对象,我将其设置为“类”(在 CS3 中,右键单击库中的项目选择属性,确保将其设置为导出为动作脚本,并且具有类名称)

对于本练习,我们将该类命名为“MyClass”

如果我将该 FLA 发布到 SWC 和 SWF:

我可以静态加载 SWC,并通过简单地执行以下操作来实例化“MyClass”:

var inst:MyClass = new MyClasS();

现在,问题是:我希望能够在运行时通过使用加载器对象加载 SWF 文件来完成此操作。

我了解如何在发布之前访问 FLA 中手动创建的实例,但我希望能够做的是创建“MyClass”类的新实例。

我可以获得代表 swf 文件的“MovieClip”,我可以将其添加到我的显示列表中,但我似乎无法获取其中包含的类。(我希望这是有道理的)

任何有关如何攻击此问题的建议将不胜感激。

编辑 :格式代码

有帮助吗?

解决方案

要完成基督教的回答:

var cls : Class = loader.contentLoaderInfo.applicationDomain.getDefinition("ClassName");

var instance : Object = new cls();

此外,值得一提的是,你不会得到强类型(即它必须声明为对象),除非类实现这也是在主应用程序定义的接口。然后,您就可以在实例变量声明为接口,并且具有编译时访问它的成员。

其他提示

看看这里;您应该能够使用 Loader.contentLoaderInfo.applicationDomain.getDefinition("MyClass") 提取类引用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top