Apache flex Flex/AS3:在数组中自动实例化包类(插件类)

Apache flex Flex/AS3:在数组中自动实例化包类(插件类),apache-flex,actionscript-3,Apache Flex,Actionscript 3,这是我第一次来这里,但我已经在这里找到了一些好的答案,所以我要感谢大家 我正在开发一个小型Flex应用程序,我想将包中的每个类实例化为一个数组,以便以后可以解析它。为了澄清这一点,我正在尝试使用旧的canProcess/doProcess例程简化我的应用程序的插件管理系统: 我的插件都在一个包中,包括一个抽象插件类。首先,我为这个包中的每个类创建一个实例(这是我需要帮助的地方),并将它们放在一个数组中。然后,每当我需要一个项目的插件时,我就用canProcess方法解析数组中的每个插件类(项目就

这是我第一次来这里,但我已经在这里找到了一些好的答案,所以我要感谢大家

我正在开发一个小型Flex应用程序,我想将包中的每个类实例化为一个数组,以便以后可以解析它。为了澄清这一点,我正在尝试使用旧的canProcess/doProcess例程简化我的应用程序的插件管理系统: 我的插件都在一个包中,包括一个抽象插件类。首先,我为这个包中的每个类创建一个实例(这是我需要帮助的地方),并将它们放在一个数组中。然后,每当我需要一个项目的插件时,我就用canProcess方法解析数组中的每个插件类(项目就是参数)。如果一个插件说是,那么我将该项发送到doProcess方法并停止解析数组

我知道我可以手工实现包中的每一个类,但我宁愿不费心去实现它

有人有主意吗


ThxAS3反射不允许您列出包中的所有类。您必须将类名写入服务器上的(xml)文件,加载它,然后使用从这些字符串中获取
class
对象,然后实例化它们

考虑示例xml文件:

<root package="boris.ratak">
  <className>Plugin1</className>
  <className>Plugin2</className>
  <className>Plugin3</className>
</root>
import flash.utils.getDefinitionByName;

var pack:String = String(xml.@package) + ".";
for each(var cl:String in xml.className)
{
   var name:String = pack + String(cl.text());
   var Type:Class = getDefinitionByName(name) as Class;
   pluginArray.push(new Type());
}