模块数据共享

来源:互联网 发布:黑搜索 淘宝 编辑:程序博客网 时间:2024/04/30 05:08

1.主程序调用模块的方法
    这种方法最常见,使用ModuleLoader和使用ModuleManager有一点不同,使用ModuleLoader是利用其child属性来访问模块,而使用ModuleManager是使用其factory来访问的。
    代码如下:
    var total:Number = (mLoaderMxml.child as MXMLModule).addNumber(arr);
    var total:Number = (asModuleInfo.factory.create() as ASModule).addNumber(arr);
    addNumber()为模块中的方法。
2.模块调用主程序的方法
    可以利用parentApplication,也可以直接使用Application。在一般情况下,使用parentApplication更容易理解,因为它会保证访问的是加载该模块的应用,而Application是指应用的最顶级。
    var str:String = this.parentApplication.方法;
    var str:String = Application.application.方法;
3.模块之间互相调用
    一个主应用加载的模块A可以调用同一个主程序的模块B。
    //A模块访问B模块的方法
    var arr:Array = this.parentApplication.模块B.child.方法;这种方法过分依赖B模块,这样的结构不灵活。正确的解决方案应该是有一个代理,模块A想要得到的数据就从代理那获得,而代理则去找到正确的数据提供者,如果没有则返回空,即代理会保证模块A的运行。

    如果模块需要做一些初始化的工作,那么在被主应用加载后,可以提供一个方法供主应用来调用,以实对模块的一些设置。


    总结以上的几个方面,应用和模块的交互,如果使用ModuleLoader,那么就通过其child属性来获取访问模块的入口;如果使用ModuleManager,那么就通过factory获得访问模块的入口。

原创粉丝点击