1

コード コンバーター (AS3 から別の言語へ) を作成するには、すべてのカスタム クラスと AS3 コアから継承チェーン全体にアクセスする必要があります。

コンバータ自体は AIR で記述されており、移植するアプリは Flash Player または AIR アプリのいずれかになります。これは私を困惑させます: それを反映するために、その特定のアプリのために、異なるバージョンの playerglobal または airglobal (コンバーター自体にロードされたものと比較して!) をランタイムロードする必要があります。コンバーターが library.swf (playerglobal.swc 内にある SWF) を読み込もうとすると、次のように表示されます。

VerifyError: Error #1079: Native methods are not allowed in loaded code.

これを克服するまではdescribeType()、SWF のクラスを検査するために使用できないため、これは問題です。(そして、クラス情報を取得するために SWF から ABC を読み取ることは本当に避けたいと思います。)

解決策はありますか?

4

1 に答える 1

0

playerglobal.swcこれは主にairglobal.swcコードのヒントとして使用され、コンパイラに使用可能なネイティブメソッドを通知するために使用されます。それらには実際のコードブロックがいくつか含まれていますが、ほとんどは空の関数です。 実行時にそれらをロードすることはできません。また、とにかくネイティブ定義をオーバーライドすることはできません。

内省のためにこれを行う必要がある理由について私は混乱しています。describeTypeコンバーターからのネイティブ変数のインスタンスで使用でき、アプリ自体の内部から呼び出された場合とまったく同じ出力を取得できるはずです。

于 2013-03-07T12:37:31.803 に答える