flex中Popup窗口访问父窗口的4种方法以及相互传值

1.如果使用MVC框架,相信这并不是一个问题。而如果没有使用的话,可以用类似的方法设置一个单例,子窗口和父窗口通过这个单例来交互消息,如果需要解耦,请发送自定义事件。总之,只要按照MVC思路来做就可以了。
2.类似JS,在子窗口的构造函数里增加一个参数,将父窗口传参进去。MXML没有构造函数,用一个属性来保存父窗口引用也可以。
3.无论是createPopUp还是addPopUp,他们都有一个返回值,得到子窗口的实例。可以对这个实例监听remove事件,并在这个事件中直接读取子窗口需要返回给父窗口的属性。(记得要将这个事件最终移除)

  1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">  
  2.  <mx:Panel x="94" y="178" width="503" height="347" layout="absolute">  
  3.   <mx:TextInput x="134" y="64" id="tit_usr" text="username"/>  
  4.   <mx:TextInput x="134" y="125" id="tit_psw" text="password"/>  
  5.   <mx:Button x="171" y="209" label="Submit" click="mytw_click()"/>  
  6.  </mx:Panel>  
  7.  <mx:Script>  
  8.   <!--[CDATA[  
  9.  import mx.containers.TitleWindow;  
  10.  import mx.managers.PopUpManager;  
  11.  import mx.controls.Text;  
  12.  private var tw:titlewindow=new titlewindow();  
  13.  private function  mytw_click():void{  
  14.   if(tw.visible){  
  15.    PopUpManager.removePopUp(tw);  
  16.    }  
  17.    PopUpManager.addPopUp(tw,this);  
  18.    PopUpManager.centerPopUp(tw);  
  19.    tw.addEventListener("tw_click",update);  
  20.    }  
  21.  private function update(event:Event):void{  
  22.   tit_usr.text=tw.tw_usr.text;  
  23.   tit_psw.text=tw.tw_psw.text;  
  24.   PopUpManager.removePopUp(tw);  
  25.  }  
  26.   ]]-->  
  27.  </mx:Script>  
  28.  </mx:Application>  

弹出窗口:

  1. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="498" height="368" showCloseButton="true" close="PopUpManager.removePopUp(this)">  
  2.  <mx:Label x="96" y="67" text="username" width="97" height="26"/>  
  3.  <mx:Label x="96" y="128" text="password" width="97" height="24"/>  
  4.  <mx:TextInput x="217" y="65" id="tw_usr"/>  
  5.  <mx:TextInput x="217" y="126" id="tw_psw"/>  
  6.  <mx:Button x="228" y="239" label="Click" click="btn_click()"/>  
  7.  <mx:Script>  
  8.   <!--[CDATA[  
  9.  import mx.managers.PopUpManager;  
  10.  import mx.controls.Text;  
  11.    
  12.  private function btn_click():void{  
  13.   dispatchEvent(new Event("tw_click"));  
  14.  }  
  15.   ]]-->  
  16.  </mx:Script>  
  17. </mx:TitleWindow>  

文章来源于:http://blog.csdn.net/lomo5/article/details/5279287


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值