1

私自身のカスタム コードで、完全な AS3 継承ツリーとすべてのクラスの継承メンバーを取得する最も簡単な方法は何だろうと思っています。

  • 各 SWC の catalog.xml を検索し、カタログにリストされている適切なクラス ファイルをそれぞれ見つけて解析しますか?

  • それとも他のもっと簡単な方法ですか?

言い換えれば、サブクラスに現れる可能性のあるスーパークラスに属する public および protected メンバーを含む、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 フラッシュ プラットフォームの完全なドキュメントはどこでダウンロードできますか?

于 2013-03-06T11:24:26.577 に答える