我有一个包含库中对象的FLA文件,我将其设置为“类”(在CS3中,右键单击库中的项目选择属性,确保将其设置为导出为动作脚本,并且具有班级名称)
在本练习中,我们称之为“MyClass”类
如果我将FLA发布到SWC和SWF:
我可以静态加载SWC,只需执行以下操作即可实例化“MyClass”:
var inst:MyClass = new MyClasS();
现在,问题是:我希望能够通过使用加载器对象加载SWF文件在运行时执行此操作。
我了解如何访问在发布之前在FLA中手动创建的实例,但我希望能够做的是创建“MyClass”类的新实例。
我可以得到一个代表swf文件的“MovieClip”,我可以将它添加到我的displaylist中,但我似乎无法获得其中包含的类。 (我希望这是有道理的)
非常感谢任何有关如何攻击此事的建议。
编辑:格式代码
答案 0 :(得分:3)
完成克里斯蒂安的回答:
var cls : Class = loader.contentLoaderInfo.applicationDomain.getDefinition("ClassName");
var instance : Object = new cls();
此外,值得注意的是,您不会得到强类型(即必须声明为Object),除非该类实现了在主应用程序中定义的接口。然后,您将能够将实例变量声明为接口,并具有对其成员的编译时访问权。
答案 1 :(得分:2)
Have a look here;您应该能够使用Loader.contentLoaderInfo.applicationDomain.getDefinition(“MyClass”)提取类引用。