私はここ数日、このために頭を壁にぶつけており、誰かが私を正しい方向に向けることができることを望んでいます.
以前は 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_a
view_b
view_a
view_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.swf
view_b.swf
-externs
modules
compc
をコンパイルclass_a.as
しclass_b.as
てclasses.swf
に使用し、外部ロード用-directory=true
にアクセスするために使用します。library.swf
ただし、 に依存する 2 つのビュー ファイルのいずれかを実行しようとするclasses.swf
と、クラス定義が存在しないというランタイム エラーが発生します。
現在の回避策
以前に使用していたモジュラーアプローチに逆行しているため、現在満足していない回避策を考案しました。
コード モジュールをロードするのではなく、子ムービーに必要なすべてのクラス定義を に静的にリンクしroot.swf
ます。をビルドするときは、 のオプションroot.swf
を使用して、含まれるクラスのリストを提供します。子 swfs をビルドするときに、既に存在するクラス定義がコンパイル出力に含まれないようにするために使用できます。-link-report
mxmlc
-load-externs
私が AS3/CS5 を使用していた AS2/_exclude.xml ソリューションを複製する方法を知っている人はいますか?