0

私の主なアプリケーションにはClassA. 次に、メインアプリケーションがモジュールをロードし、そのモジュールでやりたいこと:

var classA:InterfaceClassA = new ClassA();

正常にコンパイルされますが、次の警告が表示されます。

Warning: YourApplication is a module or application that is directly referenced. This will cause YourApplication and all of its dependencies to be linked in with module.YourModule:Module. Using an interface is the recommended practice to avoid this.

インターフェイスを使用して新しいインスタンスを生成することはできません。これを行う正しい方法は何ですか?

4

1 に答える 1

0

Accessing the parent application from the modules で答えを見つけました。アクセスするクラスのインスタンスを含むメイン アプリケーションにヘルパー クラスを作成しました。モジュールでは、次を使用します。

parentApplication.myModuleHelper.**myClassInstance**.myMethod();

インスタンスメソッドと私が使用する静的クラスレベルメソッドの場合:

parentApplication.myModuleHelper.**MyClassInstance**.myMethod()

モジュールでクラスのインスタンスを取得するには、これを MyModuleHelper で使用します

public function getFullScreenUtil(iFullScreenUtil:IFullScreenUtil , iSystemManager:ISystemManager):FullScreenUtil {
    return new FullScreenUtil(iFullScreenUtil , iSystemManager);
}

そしてこれはMyModuleにあります:

var _fullScreenUtil:* = parentApplication.moduleHelper.getFullScreenUtil(this , systemManager);

今のところ必要なのはこれだけです。getFullScreenUtil(..)の結果を の実際のインスタンスにキャストする方法はわかりFullScreenUtilませんが、モジュールでは実行できないと思います。おそらく、インターフェースを使用すると、それに対する解決策が得られるでしょう。

于 2013-01-29T09:26:31.790 に答える