3

うわー、スタックオーバーフローに関する私の最初の投稿。私は「到着」しましたか?

さて、これは奇妙なボールです。リンクされたSWC内のクラスを実行時にイントロスペクトするプログラム的な方法があるかどうかを判断しようとしています。

もう少し背景を説明するために(これを行うにはまったく異なる方法があるかもしれません)、フォント埋め込みの一般的なフレームワークを検討しています。現在、フォントを埋め込むには([embed]メタタグではなくリンクされたSWCを使用)、Flash IDEを使用してフォントをSWCに埋め込む必要があります。次に、ライブラリアセットのクラスへの参照をハードコーディングする必要があります。コード(別のIDE(FlashDevelopなど)を使用して、他の誰かによって作成されている可能性があります)。

現在、実行時にSWCをイントロスペクトし、公開するクラスを反復処理することができれば、理論的には、これらのフォントが何であるかを(コンパイル時に)知らなくても、プログラムでこれらのフォントをインスタンス化/登録できます。

したがって、質問:実行時にエンティティとしてSWCにアクセスし、公開されているクラスをイントロスペクトする方法を知っている人はいますか?


余談ですが、この種の理由は、設計とアプリケーションロジックの責任を明確に分離したいという単純な願望です。デザイナは、フォント、作成者、SWCを簡単に埋め込んだり、対応する外部CSSファイルを編集したりできます。コード内のクラスへのハードリファレンスを更新するためにそれらを頼りにすること、またはジョブがコンパイルされてリリースされた後にフォントの使用法について彼らの考えを変えないことをクライアントに頼ることははるかに危険です。

4

2 に答える 2

1

ファイルをバイナリとしてロードし(または、ステージのLoaderInfoのbytesプロパティをメインファイルの場合は使用し)、ABCデータの「タグ」を調べて解析し、必要なデータを探すことができます。でも面倒です。

フォントタグなどがあります。FontIDとFontNameを含むDefineFont2(タグタイプ48)、FontIDとFontNameも含むDefineFontName(タグタイプ88)。多分それはあなたが必要とするデータです。そうである場合は、最大のファイルでさえもめちゃくちゃ速く調べることができます。

ここで.swfファイル形式の仕様を読むことができます:http ://www.adobe.com/devnet/swf.html

于 2010-10-07T17:57:46.067 に答える
0

FLexSpy(fxspy)http://code.google.com/p/fxspy/をご覧ください。

他にも役立つものがいくつかあります。

KapInspect: http: //lab.kapit.fr/display/kapinspect/Kap+Inspect

DeMonster DeBugger:http ://demonsterdebugger.com/

于 2010-10-07T16:47:23.567 に答える