2010-12-13 4 views
2

いくつかのパッケージやパッケージの一部をSWCファイルにあらかじめコンパイルすることで、大規模なFlash IDEプロジェクトのコンパイルを高速化したいと思っています。これは、AS3のAdvanced SettingsのFlash Publish SettingsのSource Pathセクションに含まれます。ASファイル(ソースパス)またはリンクされたSWCファイル(ライブラリパス)で、Flashはまずクラス定義を調べますか?

問題は、(理論的に)SWCとソースパスの両方でクラス定義を見つけることができるという条件で、コンパイラが最初にクラス定義を探す場所がわからないことです。 SWCのソースはソースパスにあります(つまり、メインFLAとリンクされたSWCは同じソースパスまたはルートディレクトリを共有します)。

ソースパス(ASファイルを含むパス)の順序を並べ替えることができますが、ライブラリパス(SWCファイルまたはSWCファイルを含むフォルダへのパス)の順序を並べ替えることはできますが、ソースパスまたはライブラリパス最初に定義が検索されます。

ライブラリパス(ASファイル)またはソースパス(SWCファイル)のクラス定義は使用されますか?それらは同じクラス定義を表すかもしれませんが、SWCファイルを使用しない限り、コンパイル時間は減少しません。

編集:私が見つけた だけdocumentationは、あなたがライブラリパスを使用する場合は、SWCファイルにコンパイルされたコードのいずれもソースパスにファイルとしてコンパイルしていないに複製されていないことを確認し、」言う冗長コードは遅くなります。あなたのSWFファイルのコンパイルをダウンしてください。どの定義が実際に使用されるかを言及せずにパフォーマンスヒットをどのように言及するのが大好きです:P

答えて

1

ASファイルはコンパイラが探す最後の部分です。したがって、ASファイルはswcライブラリのクラスをオーバーライドします。

+0

明確にするために、私が最初に探してクラス定義が見つかる場所は、それが使用する定義だと仮定しています。それで、それはASファイルを最初に見ていると言っているのですか?とにかく... – Triynko

+0

私はこれをテストし、ASファイルのクラス定義が実際にリンクされたSWCの同等の完全修飾定義をオーバーライドすることを確認できます。テスト:SWCの "testclass"コンストラクタにトレースステートメント "SWC def"をコンパイルしました。その後、ASファイルの定義を "AS def"をトレースするように変更しました。私のFLAでは、SWCをリンクして、 "testclass"をインスタンス化するためのスクリプトを追加しました。それは "AS def"をトレースします。 ASファイルを単純に削除してFLAを再コンパイルすると、 "SWC def"がトレースされ、ASファイル定義を好む一方で、それがない場合には同等のSWC定義に戻ることが示されます。 – Triynko