1

Adobe® Flash® Builder™ 4.6 を使用していますが、以前のバージョンにも問題がありました。

何らかの理由で、私は使用しています

cls = applicationDomain.getDefinition(name) as Class;

オブジェクトのコンストラクターを取得し、モジュール クラスのインスタンスを作成します。したがって、メイン クラスとは関連していないため、make compile はモジュール クラスを無視します。他のクラスも強制的に swf または swc ファイルにコンパイルするにはどうすればよいですか? コンパイル オプションを調整できる場所が見つかりませんでした。

今では、プログラムエントリの最初で、この方法を使用して問題を解決しています。

if(1+1==3){
    //never be run but do make classes merge into swf files.
    new MyModule();
}

私はこのようなモジュールを何百も持っています。この問題を永久に解決する方法を見つけられることを願っています

4

4 に答える 4

2

これで試すことができます

package
{
public class IncludeClasses
{
    import com.abc.db.Database;Database;
    import com.abc.logs.RemoteLogTarget; RemoteLogTarget;
    import com.abc.logs.LocalLogTarget; LocalLogTarget;
    import com.abc.exception.GlobalExceptionHandler; GlobalExceptionHandler;
    import com.abc.utils.NetConnectionMonitor;NetConnectionMonitor;
}
}
于 2012-11-10T07:49:27.327 に答える
2

swfでコンパイルするには、クラスを使用する必要があります。
最善の方法ではありませんが

private var someVar:someClass;


「new」キーワードを使用すると、ランタイムがオブジェクトにメモリを割り当てるため、それを使用したくありません。


このロードモジュールとコンパイルクラス全体には、コードの臭いがあります。
モジュール内のクラスにインターフェースを実装させる方がよいでしょう。

于 2012-11-09T14:31:01.927 に答える
1

プロジェクト内に表示するには、クラスへの厳密な参照が少なくとも 1 つ必要です。私は Array 型の静的変数を使用して、必要なすべてのクラスを詰め込んでおり、可能であれば、その配列を実際に参照することはありません。

private static var dummy:Array=[OneClass, AnotherClass, Class01, Etc];
于 2012-11-09T16:07:05.703 に答える
0

これは、コンパイラ フラグを設定して行うこともできます。 アプリケーションのコンパイラ オプションについて

参照: include-libraries ライブラリ [...]

include-classes コンパイラ オプションで含まれるクラスの継承依存関係にあるクラスのみを含めます。

デフォルト値は false です。

これは高度なオプションです。カスタム RSL を作成していて、できるだけ多くのクラスを外部化する場合は、このコンパイラ オプションを使用できます。例えば:

compc -include-classes mx.collections.ListCollectionView 
-include-inheritance-dependencies-only=true 
-source-path . -output lcv2 -directory
于 2014-11-26T20:51:03.530 に答える