Flex中Module间的通讯和在Application中的切换

 

最近在学Flex时遇到一个比较烦人的问题,就是题目所说的。

更郁闷的是GOOGLE了挺久还是没筛选到合适的东西,好在后来有群主的帮助,才搞定了这个问题。自己也简单演示了一下。先说说自己的理解吧,通俗版的。

 

1、本例要讲述的是如何在一个Application中实现模块间的却换,并且实现模块间的通讯(互通)。具体的通讯过程是Module01复杂接收输入-->Module02负责显示输出-->Module02返回到Module01


2、如何实现Module01和Module02的通讯,这就要借助Application中的变量作为临时中介,并通过Module01-->ModuleLoader-->获取数据并处理-->ModuleLoader-->Module02,这是单程,回程也是相差不多。


3、比较好的实现方法就是创建一个"自定义事件",标注从Module中发出的不同消息的意义,一个就足够了。在自定义事件里我声明了一个Object类型变量,该变量用于存储你要传递的消息,当然也可以通过下面的IEventDispatcher来实现。不同的是,消息负责里层到外的捕获,可能是利用消息的冒泡机制吧,然后IED是实现外到里的数据的传递,不过这我觉得用事件派发也同样可以实现,不过还没去试过,时间派发也可以实现从外层到里层渗透的。
 还有实现IEventDispatcher事件派发接口,不同模块创建一个自己模块的接口,并且在Module中实现它。主要作用就是用来获取ModuleLoader.child的对象的值,判断是否为空,空就是对应接口的对象没有实例化成功,就是没有加载成功。接口里面的set方法可以用于接收数据(消息)到模块中去。


4、ModuleLoader.ready事件用于判断模块是否加载完成,完成就进行逻辑处理。这里我们设计的是如果完成了,就放置监听器监听模块事件并且进行进一步处理。这里利用的是ready的实时特性。其实要求不高可以放置在初始化方法中,起码我们这里就可以。


 简单演示一下,看是不是你想要的。

一、初始页面:

 

 

二、进入模块一,并输入信息:

 

 

三、接收信息并显示:

 

 

四、返回到模块一:

 

最后请参考一下源代码

http://download.csdn.net/source/1237888

 

参考文章:

http://hi.baidu.com/guodong828/blog/item/715e332d7c2aa531349bf769.html

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值