Apache flex 创建一个全名的类并将其传递给自定义组件

Apache flex 创建一个全名的类并将其传递给自定义组件,apache-flex,Apache Flex,我有类名:some.path.exampleclass,并且必须实例化这个类(比如getDefinitionByName()。问题是getDefinitionByName()生成类exampleclass,我需要全名为some.path.exampleclass的类将其传递给自定义组件: <tools:MyComp value="some.path.exampleclass"/> 有没有快速的解决方案?:) 如果您的目的是基于表示FXG元素的完全限定类名的字符串创建FXG元素的

我有类名:some.path.exampleclass,并且必须实例化这个类(比如getDefinitionByName()。问题是getDefinitionByName()生成类exampleclass,我需要全名为some.path.exampleclass的类将其传递给自定义组件:

<tools:MyComp value="some.path.exampleclass"/>


有没有快速的解决方案?:)

如果您的目的是基于表示FXG元素的完全限定类名的字符串创建FXG元素的实例,您可以这样做:

var classNameString :String = // your code to get the classname;
var class :Class = getDefinitionByName( className ) as Class;
var newObject : MyObject = new class() as MyObject;
这应该可以很好地与FXG元素配合使用。我在手机游戏中使用它

你提到:

Setter方法…需要使用完整路径类进行设置 不仅仅是getDefinitionByName给我的

getDefinitionByName返回类的实例。如果您的方法需要字符串,这就是getDefinitionByName不起作用的原因


有关更多详细信息,如果需要,您应该提供方法或属性的完整源代码。

我不理解您正在寻找解决方案的问题。您可能需要尝试重新编写您的问题以使其更清楚。从HTTPservice中,我得到类似于:assets.some.class的内容。然后我做如下操作:var clazz:Class=getDefinitionByName(data.url)作为类;在itemRenderer中。。。接下来,我必须将clazz传递给组件,但完整路径为“assets.some.class”,getDefinitionByName只提供“class”。或者,更具体地说,我必须将FXG图像类传递给显示它的组件。该组件的Setter方法需要设置为完整路径类,而不仅仅是getDefinitionByName给我的那个类。。。