通过传入类型创建flex自定义组件的实例

时间:2009-07-28 20:15:51

标签: flex actionscript-3 mxml

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

1 个答案:

答案 0 :(得分: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