我的主应用程序包含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.
我无法使用接口生成新实例,那么正确的方法是什么?
答案 0 :(得分:0)
我在Accessing the parent application from the modules 找到了答案。我在主Application中创建了一个帮助器类,它包含我想要访问的类的实例。然后在模块中我使用:
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
的实际实例,但我希望它不能在模块中完成。也许使用接口可以提供解决方案。