加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex dispatchEvent 实例

发布时间:2020-12-15 03:46:33 所属栏目:百科 来源:网络整理
导读:flashbuilder sdk:3.6;jdk:1.7,;tomcat:7;myeclipse:10.0 Flex dispatchEvent实例下载:点击打开链接 Flex dispatchEvent实例:所谓dispatchEvent是一个什么东西呢?按照我单纯 的理解,就是我定义了一个事件,然后去监听这个事件,最后,当有人触发

flashbuilder sdk:3.6;jdk:1.7,;tomcat:7;myeclipse:10.0

Flex dispatchEvent实例下载:点击打开链接

Flex dispatchEvent实例:所谓dispatchEvent是一个什么东西呢?按照我单纯 的理解,就是我定义了一个事件,然后去监听这个事件,最后,当有人触发这个事件的时候,就调用监听程序进行处理。好了,废话不多说了,看代码吧。

首先说下思路:


页面里面有一个Button,点击button后,会有两个操作,一是弹出另外一个窗口,二是注册自定义事件(加自定义事件的监听);然后在弹出窗口定义函数,主要是发送自定义事件以及输入框的参数到后台,后台打印传过来的参数;

这里首先自定义了一个事件类,如下:

[java]? view plain copy

在CODE上查看代码片

派生到我的代码片

  1. package?fz.event??
  2. {??
  3. ????import?flash.events.Event;??
  4. ??????
  5. ????/**?
  6. ?????*?user?defined?event;??
  7. ?????*?used?to?listen?the?CHANGE_FLAG?attribute?
  8. ?????*/??
  9. public?class?MyEvent?extends?Event??
  10. ????{??
  11. ?????????static?public?var?CHANGE_FLAG?:String?="change_flag";??
  12. ???????????
  13. public?var?CHANGE_FLAG2:?String?="change_flag2";??
  14. ??????????
  15. ????????public?var?info:String;?//?info?from?flex??
  16. public?function?MyEvent(type:String,info:String?,bubbles:Boolean=false,?cancelable:Boolean=false)??
  17. ????????{??
  18. ????????????super(type,?bubbles,?cancelable);??
  19. ????????????this.info=info;??
  20. ????????}??
  21. ????}??
  22. }??
这个事件类有两个static属性(change_flag2可以暂时不管)和一个一般属性;看第一个button如何加监听:

public??function?addListen_click():void{??
  • ??
  • //?add?listener?in?the?father?panel??
  • ????var?btpopmenu:BtPopMenu=BtPopMenu(PopUpManager.createPopUp(this,BtPopMenu,true));??
  • ??????
  • ????//Alert.show("after?new?BtPopMenu");??
  • ????btpopmenu.addEventListener(MyEvent.CHANGE_FLAG,saveInfo);??
  • ????PopUpManager.centerPopUp(btpopmenu);??
  • }??

  • 上面是第一个button的click属性函数,其中BtPopMenu就是自定义的一个弹出式窗口,如下:

    <?xml?version="1.0"?encoding="utf-8"?>??
  • <mx:TitleWindow?xmlns:mx="http://www.adobe.com/2006/mxml"?showCloseButton="true"???
  • ????????????????layout="absolute"?width="400"?height="300"?close="this.close()">??
  • ????<mx:Metadata>??
  • ????????[Event(name="CHANGE_FLAG",type="fz.event.MyEvent")]??
  • ????</mx:Metadata>??
  • ????<mx:Script>??
  • ????????<![CDATA[??
  • import?fz.event.MyEvent;??
  • import?mx.managers.PopUpManager;??
  • ??????????????
  • public?function?pop_click():void{??
  • ????????????????var?info:String?=input.text;??
  • ????????????????//?新建事件??
  • ????????????????var?myEvent:MyEvent?=new?MyEvent(MyEvent.CHANGE_FLAG,info);??
  • //?发送事件??
  • ????????????????dispatchEvent(myEvent);??
  • ????????????}??
  • private?function?close()?:?void?{??
  • ????????????????PopUpManager.removePopUp(this);??
  • ????????]]>??
  • ????</mx:Script>??
  • ????<mx:VBox?height="100%">??
  • ????????<mx:HBox>??
  • ????????????<mx:Label?text="输入后台要打印的数据:"?/>??
  • ????????????<mx:TextInput?id="input"?/>??
  • ????????</mx:HBox>??
  • ????????<mx:Button?id="popBt"?label="后台打印吧"?click="pop_click()"/>??
  • ????</mx:VBox>??
  • </mx:TitleWindow>??
  • btpopmenu.addEventListener(MyEvent.CHANGE_FLAG,saveInfo);??

    上面一句就是加监听的了,这里是把MyEvent的CHANGE_FLAG属性作为监听的对象,然后如果检测到有事件的话,就调用saveInfo方法,这个再说。

    看弹出的窗口中的button的click函数:

    ????????????????var?info:String?=input.text;??
  • ????????????????//?新建事件??
  • ????????????????var?myEvent:MyEvent?=//?发送事件??
  • ????????????????dispatchEvent(myEvent);??
  • ????????????}??
  • click函数创建了一个MyEvent的CHANGE_FLAG事件,然后发送这个事件,所以在第一个button中的事件监听就会收到这个事件,就会调用saveInfo方法:

    ?*?注册监听事件,当有事件发送时,后台打印?
  • ?*/??
  • public?function?saveInfo(e:MyEvent): ????var?info:String?=e.info;??
  • //??Alert.show("info:"+info);??
  • ????save_info.printInfo(info);??
  • }??
  • 这里的save_info是RemoteObject,在remoting-config.xml中配置。

    看下前台展示效果吧:





    分享,成长,快乐

    转载请注明blog地址:http://blog.csdn.net/fansy1990

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读