在Flex 4中有没有办法获取域中的所有类?

时间:2011-10-17 01:34:47

标签: flash flex flex4

有没有办法获取当前应用程序中的所有类。比如说你创建一个空白的应用程序,并希望看到所有存在的类,这将列出系统管理器,应用程序,uicomponent等。

1 个答案:

答案 0 :(得分:3)

不幸的是,标准的Reflection API无法提供域中的类列表。

但是,AS3 Commons Bytecode library存在,它能够读取当前应用程序的字节码(或任何字节码)并解析它,从而提供对域中所有当前类的访问。 (还有一大堆其他很酷的东西)。

有一个示例显示如何执行here之后的操作。

使用此库的缺点是您必须在运行时重新加载和解析数据,这会产生显着的性能成本。

James Ward和Mike Labriola做了一些修改SWF加载器的工作,它将初始字节码加载到您的flex应用程序中,以便在启动时执行反射,从而减少了解析字节码两次的需要。

詹姆斯在博客中写了他的结果here