私はここ数日、このために頭を壁にぶつけており、誰かが私を正しい方向に向けることができることを望んでいます.
以前は AS2/CS3 で、非常に大規模な Flash アプリケーションで作業していましたが、次のようなセットアップが必要でした。
root.swf
-- modules
---- code_a.swf
---- code_b.swf
-- views
---- view_a.swf
---- view_b.swf
_exclude.xmlファイルを使用して、code_aおよびcode_bの出力 .swf でview_a定義されたクラスを除外できましたview_b。は、またはのroot.swf前にコード モジュールをロードし、およびが依存するクラス定義が存在することを保証します。view_aview_bview_aview_b
問題
最近、Actionscript 3/CS5 を使用するように移行しました。*_exclude.xmlファイルはもう存在しません。上記と同じ機能を得るために、次のことを試しました。
私のセットアップは次のようになります。
root.swf
-- modules
---- class_a.as
---- class_b.as
-- views
---- view_a.swf
---- view_b.swf
mxmlcをコンパイルし、root.swfオプションを渡して、外部からロードされるクラスを指定するために使用します ( の 2 つのクラス)。これにより、クラスがコンパイルされた swf から除外されます。view_a.swfview_b.swf-externsmodules
compcをコンパイルclass_a.asしclass_b.asてclasses.swfに使用し、外部ロード用-directory=trueにアクセスするために使用します。library.swf
ただし、 に依存する 2 つのビュー ファイルのいずれかを実行しようとするclasses.swfと、クラス定義が存在しないというランタイム エラーが発生します。
現在の回避策
以前に使用していたモジュラーアプローチに逆行しているため、現在満足していない回避策を考案しました。
コード モジュールをロードするのではなく、子ムービーに必要なすべてのクラス定義を に静的にリンクしroot.swfます。をビルドするときは、 のオプションroot.swfを使用して、含まれるクラスのリストを提供します。子 swfs をビルドするときに、既に存在するクラス定義がコンパイル出力に含まれないようにするために使用できます。-link-reportmxmlc-load-externs
私が AS3/CS5 を使用していた AS2/_exclude.xml ソリューションを複製する方法を知っている人はいますか?