AS3:IDE如何提取类继承信息?

时间:2013-03-06 10:16:41

标签: ide actionscript-3

我想知道最简单的方法是使用我自己的自定义代码中的 - 一个完整的AS3继承树和每个类的继承成员:

  • 搜索每个SWC的catalog.xml,然后查找目录中列出的每个相应的类文件,并解析它?

  • 还是其他一些更简单的方式?

换句话说,我需要完全了解AS3继承链(所有核心和自定义类),包括属于可能出现在子类中的超类的公共成员和受保护成员。此信息将插入我正在编写的语言转换器(AS3->其他一些语言)。

我想知道如何。 FlashDevelop或FlashBuilder(Eclipse)就是这样做的。我已经查看了每个.SWC中出现的catalog.xml文件,但是虽然这提供了对继承链的一些了解,但它没有说明IDE如何提取自动完成中使用的继承成员等信息。

这些信息应从哪里提取? ...请记住,FD(例如)是用C#编写的,因此describeType可能不是一个选项。

2 个答案:

答案 0 :(得分:2)

要访问完整的依赖关系图,包括私有和内部API,您必须使用字节码内省 - 解析类(文本)文件不会从.SWC库中生成有关导入类的任何信息。有关ActionScript字节码的详细信息,请查看AVM2 specification

如果您打算在AS3中工作,可以使用describeType()在运行时访问任何类的类型信息。但是,它的范围是有限的(仅包括公共成员),并且性能很高,因此您必须实现某种缓存机制,也可能调整XML解析。

如果您想省去麻烦,请查看as3commons-reflect。它提供了上述所有功能,以及非常方便的API。任何时候你都会在奇怪的场合使用反思,我强烈推荐它 - 你会节省很多时间和精力来写别人已写的东西;)。

此外,如果您需要访问私有和内部成员,或者如果您想在运行时操作类,那么as3commons-bytecode可以处理已加载类的实际字节码,并允许各种类型的voodoo和黑魔法。

答案 1 :(得分:0)

我真的希望避免链接到软件,但这个似乎就是你想要的。

AS3 Class Diagram Viewer

enter image description here

除此之外,文档似乎总是很有条理地看到类层次结构。

您还可以获得离线版本... where can I download AS3 flash platform full documentation?