模块数据共享

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获得访问模块的入口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值