[发明专利]一种flex中利用事件机制在模块间传递数据的方法无效
申请号: | 200910017114.6 | 申请日: | 2009-07-09 |
公开(公告)号: | CN101599029A | 公开(公告)日: | 2009-12-09 |
发明(设计)人: | 邸双朋;魏健 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 flex 利用 事件 机制 模块 传递 数据 方法 | ||
1、一种flex中利用事件机制在模块间传递数据的方法,其特征在于方法包括:
a.在数据所在的源模块中创建自定义事件,将要传递的数据封装到该事件中;
b.以flex主程序作为发送事件的对象,将定义的事件分发出去;
c.在目标模块中设置事件监听器,用于监听携带数据的事件,监听到该事件以后,调用相应的处理方法把数据从事件中读取出来并传递到目标模块的变量中;
d.将flex主程序作为发送事件和监听事件的对象,在运行过程中,主程序一直存在,不会出现发送事件的对象或监听事件的对象不存在的情况,消除了模块间的依赖性;
e.在数据的源模块和目标模块中分发事件和设置事件监听,就近调用处理方法来封装和分离要传递的数据;
f.在多个不同的模块中对同一个事件进行监听,将数据传递到多个模块中,供多个模块使用,实现了数据的广播;当需要把一个模块中的数据传递到多个模块中并在多个模块中设置监听和处理事件以及读取数据时,通过以下步骤实现:
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);
}
}
}
该文件定义了一个事件类,用来保存和传递数据,要传递的数据的类型可以是系统可识别的任何类型,并且支持自定义的数据类型;
2)设定在模块A中创建DataEvent的实例,并将需要传递的数据保存到data变量中,然后以主程序作为分发事件的对象将该DataEvent事件分发出去;
模块A中的内容:
<mx:Module xmlns:mx=″http://www.adobe.com/2006/mxml″layout=″absolute″>
<mx:Script>
<![CDATA[
private function onclick(e:Event):void{
//创建自定义事件的实例,myevent为监听时用来区分事件的标志;
var dataEvent:DataEvent=new DataEvent(″myevent″);
//把要传递的数据保存到data变量中;
dataEvent.data=″mydata″;
//把携带数据的事件分发出去;
this.parentApplication.dispatchEvent(dataEvent);
}
]]>
</mx:Script>
<mx:Canvas x=″10″y=″10″width=″380″height=″280″borderStyle=″solid″borderThickness=″2″>
<mx:Button x=″149″y=″107″label=″Button″click=″onclick(event)″/>
</mx:Canvas>
</mx:Module>
该模块中,当点击button按钮时,就会触发click事件,然后调用onclick方法,将事件分发出去,this.parentApplication表示该flex程序的主程序,该模块中由主程序作为分发事件的对象;
3)设定在模块B中设置对事件myevent的监听,监听到myevent后,调用相应的处理方法,将myevent中携带的数据分离出来;
模块B中的内容:
<mx:Module xmlns:mx=http://www.adobe.com/2006/mxml
layout=″absolute″width=″400″height=″300″
creationComplete=″oncreate()″>
<mx:Script>
<![CDATA [
private function oncreate():void{
//设置对myevent事件的监听,监听到以后调用onevent方法进行处理;
this.parentApplication.addEventListener(″myevent″,onevent);
}
private function onevent(e:DataEvent):void{
//处理myevent事件,将myevent事件中携带的数据读取出来;
textArea.text=e.data;
}
]]>
</mx:Script>
<mx:Canvas x=″10″y=″10″width=″380″height=″280″borderStyle=″solid″borderThickness=″2″>
<mx:TextArea id=″textArea″x=″101″y=″107″/>
</mx:Canvas>
</mx:Module>。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910017114.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:模块化织物系统
- 下一篇:一种食品中非法添加工业染料-酸性橙Ⅱ含量的测定方法