[发明专利]一种flex中利用事件机制在模块间传递数据的方法无效
申请号: | 200910017114.6 | 申请日: | 2009-07-09 |
公开(公告)号: | CN101599029A | 公开(公告)日: | 2009-12-09 |
发明(设计)人: | 邸双朋;魏健 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 flex 利用 事件 机制 模块 传递 数据 方法 | ||
技术领域
本发明涉及flex开发中的一种在各模块之间传递数据的方法。该方法快速,可靠,可以方便的实现各模块之间的交互,易用性强,维护方便,且大大降低了模块之间的耦合度,使各模块更加独立。
背景技术
目前,在flex中实现模块间传递数据的方法主要是通过两个模块之间方法属性的调用来实现的,例如在模块A中访问模块B的属性或方法,使模块A的数据传递到模块B中。由于flex中的模块并不是随程序的启动而加载,而是在程序运行期间动态加载的,如果模块B尚未加载,这时模块A访问模块B的属性或方法就会抛出异常,只有在模块B已经加载的情况下,模块A才能正常运行,这样模块A就对模块B有了一定的依赖性,从而增加了模块间的耦合度。另外,由一个模块向多个模块传递数据时,需要重复访问外部模块的属性或方法,如果需要传递的数据比较多,就会使代码看起来比较杂乱,不利于后期的维护和修改。
发明内容
本发明的目的是在flex开发中提供一种方便,可靠,易于维护的模块间传递数据的方法。
本发明的目的是按以下方式实现的,该方法利用flex自带的事件传播机制,将数据封装到事件中,以事件为载体把待传递的数据传递出去,同时在目的模块中设置对该事件的监听,当监听到该事件后,在目的模块中调用相应的处理方法将事件中的数据分离出来。
方法包括:
a.在数据所在的源模块中创建自定义事件,将要传递的数据封装到该事件中;
b.以flex主程序作为发送事件的对象,将定义的事件分发出去;
c.在目标模块中设置事件监听器,用于监听携带数据的事件,监听到该事件以后,调用相应的处理方法把数据从事件中读取出来并传递到目标模块的变量中。
本发明的方法主要优点如下:
以主程序作为分发事件和监听事件的对象,简化了事件流的处理过程,消除了对其他模块的依赖性。
在数据的源模块中分发事件,方便对数据进行封装;在数据的目的模块中对事件设置监听,有利于数据的分离和使用。
可以在多个模块中设置对事件的监听,从而将数据传递到多个模块中,实现了数据的广播。
本发明的优异效果是,从该方法的实现中可以看出,该方法结构清晰,使用方便,易于维护,加载模块时消除了对其他模块的依赖性,并且方便的实现了数据的广播是一种在flex模块间传递数据的方便,可靠的方法。
具体实施方式
实施例
假设现有模块A,模块B,模块B需要模块A中的数据,利用事件机制在模块之间传递数据的方法如下:
1)自定义事件类DataEvent,用来保存和传递数据,要传递的数据的类型可以是系统可识别的任何类型,并且支持自定义的数据类型。该事件类继承自flash.events.Event类,并添加一个或多个成员变量,用于保存要传递的数据。
2)在模块A中创建DataEvent的实例,并将需要传递的数据保存到步骤1中定义的变量中,然后以主程序作为分发事件的对象将该DataEvent事件分发出去。
3)在模块B中,设置对步骤2中所创建事件实例的监听。监听到主程序分发的事件后,模块B调用相应的处理方法,将该事件中携带的数据分离出来。这样就实现了数据从模块A到模块B的传递。
当需要把模块A中的数据传递到多个模块中时,可依此方法在多个模块中设置监听和处理事件以及读取数据,该方法通过以下步骤实现:
1)自定义事件类,该事件类继承自flash.events.Event类,并添加一个或多个成员变量,用来保存要传递的数据。
类文件名:DataEvent.as
package
{
import flash.events.Event;//导入事件类
public class DataEvent extends Event
{
//保存要传递的数据,可设置多个这样的成员变量。
public var data:String;
//构造函数,type用于区分事件的标志,bubbles指示事件是否为冒泡事件,cancelable指示是否可以阻止与事件相关联的行为。
public function DataEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false)
{
super(type,bubbles,cancelable);
}
}
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910017114.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:模块化织物系统
- 下一篇:一种食品中非法添加工业染料-酸性橙Ⅱ含量的测定方法