1

私はここ数日、このために頭を壁にぶつけており、誰かが私を正しい方向に向けることができることを望んでいます.

以前は 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.asclass_b.asclasses.swfに使用し、外部ロード用-directory=trueにアクセスするために使用します。library.swf

ただし、 に依存する 2 つのビュー ファイルのいずれかを実行しようとするclasses.swfと、クラス定義が存在しないというランタイム エラーが発生します。

現在の回避策

以前に使用していたモジュラーアプローチに逆行しているため、現在満足していない回避策を考案しました。

コード モジュールをロードするのではなく、子ムービーに必要なすべてのクラス定義を に静的にリンクしroot.swfます。をビルドするときは、 のオプションroot.swfを使用して、含まれるクラスのリストを提供します。子 swfs をビルドするときに、既に存在するクラス定義がコンパイル出力に含まれないようにするために使用できます。-link-reportmxmlc-load-externs

私が AS3/CS5 を使用していた AS2/_exclude.xml ソリューションを複製する方法を知っている人はいますか?

4

1 に答える 1

0

共有ライブラリを SWC にコンパイルすることをお勧めします。

RSL などの他のオプションがあります。

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf674ba-7fff.html#WS2db454920e96a9e51e63e3d11c0bf69084-7f1e

それが役立つことを願っています。

于 2011-07-16T01:36:59.733 に答える