1

コンパイラ定数を使用して、いくつかの埋め込みファイルのパスを変更したいと思います。これは、プロジェクトごとに異なります (同じソース コードを共有します)。

すなわち。これを変換します:

[Embed(source = 'mypath/myfile.png')] public static const myimage:Class;

次のようなものに:

[Embed(source = CONFIG::gfx_path+'myfile.png')] public static const myimage:Class;

ここで、CONFIG::gfx_path は「mypath/」です。

問題はそれをコンパイルしないことです (エラー: メタデータが無効です)。実際には、これを行うことさえできません: "mypath/"+"myfile.png" 同じエラーが発生するためです。

ありがとう!

4

1 に答える 1

0

埋め込みタグ (または任意のメタデータ) で実行可能コードを使用することはできません。

メタEmbedデータ タグは (無数の他の特定のコード タイプと共に) コンパイル時に実行されます。変数/メソッドを含む通常のコードは実行時に実行されます。違いがわからない場合、コンパイル時のコードはプロジェクトのビルド時に実行され、実際にはビルドの一部です。ランタイムは、アプリケーションの実行中に実行されます。

コンパイル時にランタイム コードを実行することはできません。すべての埋め込みを成功させるには、コンパイル時に明示的に定義する必要があります。面倒かもしれませんが、アプリケーションはコンパイルする前に何を埋め込むかを正確に認識している必要があります。それが埋め込みの要点です。

于 2012-11-02T16:22:46.257 に答える