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 回答