apache-flex 如何从swf示例化类?

qncylg1j  于 2022-11-01  发布在  Apache
关注(0)|答案(2)|浏览(168)

我有一个弗拉文件,其中包含库中已设置为“类”的对象(在CS3中,右键单击库中的某个项目选择属性,确保将其设置为导出为动作脚本,并具有类名)
在本练习中,我们将类命名为“MyClass”
如果我将该弗拉发布到SWC和SWF:
我可以静态地加载SWC,并通过简单地执行以下操作来示例化“MyClass”:

var inst:MyClass = new MyClasS();

现在,问题来了:我希望能够在运行时通过使用加载器对象加载SWF文件来完成此操作。
我知道如何访问在发布之前在弗拉中手动创建的示例,但我希望能够创建类“MyClass”的新示例。
我可以得到一个表示swf文件的“MovieClip”,我可以将它添加到显示列表中,但我似乎无法获得其中包含的类。(我希望这是有意义的)
我们非常感谢您对如何解决这一问题提出的任何建议。
编辑:格式代码

kse8i1jr

kse8i1jr1#

要完成克里斯蒂安的回答:

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

var instance : Object = new cls();

另外,值得注意的是,你不会得到强类型(也就是说,它必须声明为Object),除非类实现了接口,而接口也在你的主应用程序中定义。然后你就可以将示例变量声明为接口,并在编译时访问它的成员。

zte4gxcn

zte4gxcn2#

您应该可以使用Loader.contentLoaderInfo.applicationDomain.getDefinition(“MyClass”)来撷取类别指涉。

相关问题