1

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

  • 搜索每个 SWC 的 catalog.xml,然后找到目录中列出的每个适当的类文件,然后解析它?

  • 还是其他更简单的方法?

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

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

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

4

2 回答 2

2

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

如果您打算在 AS3 中工作,您可以在运行时访问任何类的类型信息,使用describeType(). 然而,它的范围是有限的(只包括公共成员),而且它对性能的影响很大,所以你必须实现某种缓存机制,也许还需要调整你的 XML 解析。

如果您想省去麻烦,请查看as3commons-reflect。它提供了以上所有功能,以及一个非常方便的 API。每当您在不寻常的罕见场合使用反射时,我强烈推荐它 - 您将节省大量时间和精力来编写其他人已经写过的内容;)。

此外,如果您需要访问私有和内部成员,或者如果您想在运行时操作类,则有as3commons-bytecode,它适用于加载类的实际字节码,并允许各种巫术和黑魔法。

于 2013-03-06T16:39:37.107 回答
0

我真的希望避免链接到软件,但这似乎正是您要寻找的。

AS3 类图查看器

在此处输入图像描述

除此之外,文档似乎总是组织得很好,可以看到类层次结构。

您还可以获得离线版本...我在哪里可以下载 AS3 flash 平台完整文档?

于 2013-03-06T11:24:26.577 回答