0

在我的 flex 应用程序中有一些自定义组件。我想在运行时创建这些组件的实例,并通过读入配置文件来为其分配属性。我知道如何读取 xml 和实例化组件,但是我的问题是能够从 xml 属性中获取组件的类型,然后创建该类型的实例。我的 xml 看起来像这样:

4

1 回答 1

2

您可以通过 ActionScript 的“反射 API”实例化任意命名类型:

var clazz:Class = Class(getDefinitionByName("class.from.your.xml.file.Name"));
var component:Object = new clazz();

http://livedocs.adobe.com/flex/3/langref/flash/utils/package.html#getDefinitionByName()

如果您收到关于类型不存在的错误,这是因为它没有从应用程序的其他地方链接,并且编译器只添加引用的类。您可以使用以下编译器 arg 解决此问题:

includes class [...]

将一个或多个类链接到生成的应用程序 SWF 文件,无论这些类在编译时是否需要。

http://livedocs.adobe.com/flex/3/html/compilers_14.html#157203

于 2009-07-29T00:01:40.797 回答