3

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

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

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

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

var inst:MyClass = new MyClasS();

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

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

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

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

编辑:格式代码

4

2 回答 2

3

完成克里斯蒂安的回答:

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

var instance : Object = new cls();

此外,值得注意的是,除非该类实现了也在您的主应用程序中定义的接口,否则您不会获得强类型(即,它必须声明为 Object)。然后,您将能够将实例变量声明为接口并在编译时访问它的成员。

于 2009-01-22T08:14:22.223 回答
2

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

于 2009-01-22T05:54:56.077 回答