3

これはより一般的な質問であり、「コードの修正に役立つ」質問ではありません。

ゴール
親 swf a.swf は外部の子 b.swf を読み込みます

子 swf にトレース ステートメントがあります: [timestamp][log level][class] msg

親swfがこれらのトレースステートメントを「トラップ」して文字列として使用することは可能ですか?

目的:
親の swf にはログ機能があります (追加のログ機能のために javascript に出力します)。

補足:
はい、(vizzy などのアプリを使用して) フラッシュログで子のトレースを確認できますが、それらの子のトレース ステートメントを親に「バブル」させることができるかどうか疑問に思っています。

追加のデバッグのためにコンパイル済みの swf を基本的に「ラップ」するデバッグ ツールを知っていますが、それらがなくても可能ですか?

前もって感謝します

4

3 に答える 3

0

トレースが何をするかを考えると、これは実際には不可能であることがわかります。mm.cfg でそのように設定している場合は、コンソールまたはログ ファイルに出力されます。これは、プレーヤー ランタイムに組み込まれた機能です。親と子、およびオブジェクト階層とは何の関係もありません。

Michael E のコメントは、あなたができる最善のことだと思います。

于 2012-07-19T18:40:22.897 に答える
0

以前は AS2 で可能でしたが、文書化されていない Trace クラスhttp://hg.mozilla.org/tamarin-central/file/e774dfe22b39/extensions/Trace.asを調べると、AS3 でも可能であるように見えます。しかし、これは信頼性が低く、変更される可能性があります。もちろん、このクラスはデバッグ ビルドでのみ使用できます。具体的には、setListener()ファイルに書き込む代わりにその関数を使用するように、関数を使用してログ レベルを適切な値に変更できます。

ただし、本当にそれを進めたい場合は、fdb ソースを調べてください。どの SWF がロードされているか、どのソース ファイルからメソッドが取得されているかなどは既にわかっています。ソース - おそらく、あなたが話しているのは非常に小さなパッチです。

于 2012-07-20T08:06:47.697 に答える
0

残念ながら、あなたが尋ねるように、純粋なAS3では実行できないと確信しています。

于 2012-07-19T18:26:45.223 に答える