您的位置:首页 > 运维架构

Popup窗口访问父窗口的方法以及相互传值

2010-09-08 09:48 344 查看
owner属性

mx.core.UIComponent.owner(value:DisplayObjectContainer):void

此 IVisualElement 对象的所有者。默认情况下,它是此 IVisualElement 对象的父代。不过,如果此 IVisualElement
对象是由其父代弹出的一个子组件(如 ComboBox 控件的下拉列表),则所有者是弹出此 IVisualElement 对象的组件。
此属性并非由 Flex 管理,而由各个组件管理。因此,如果使用
PopUpManger.createPopUp()

PopUpManger.addPopUp()
方法弹出一个子组件,则应该将该子组件的
owner

属性设置为弹出它的组件。


默认值为
parent
属性的值。



父窗口代码:PopUpDemo.mxml

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 <mx:Panel x="94" y="178" width="503" height="347" layout="absolute">
 <mx:TextInput x="134" y="64" id="tit_usr" text="username"/>
 <mx:TextInput x="134" y="125" id="tit_psw" text="password"/>
 <mx:Button x="171" y="209" label="Submit" click="mytw_click()"/>
 </mx:Panel>
 <mx:Script>
 <!--[CDATA[
 import mx.containers.TitleWindow;
 import mx.managers.PopUpManager;
 import mx.controls.Text;

 private var tw:titlewindow=new titlewindow();

 private function mytw_click():void{

 tw.owner = this;
 PopUpManager.addPopUp(tw,this);
 PopUpManager.centerPopUp(tw);

 }

 ]]-->
 </mx:Script>

</mx:Application>



tw.owner = this;在主窗体中这句必须指定它的owner,否则在弹出的窗体中

var parentWindow:PopUpDemo = this.owner as PopUpDemo;

这里 parentWindow是空对象。

弹出窗口代码:titlewindow.mxml

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="498" height="368" showCloseButton="true" close="PopUpManager.removePopUp(this)">
 <mx:Label x="96" y="67" text="username" width="97" height="26"/>
 <mx:Label x="96" y="128" text="password" width="97" height="24"/>
 <mx:TextInput x="217" y="65" id="tw_usr"/>
 <mx:TextInput x="217" y="126" id="tw_psw"/>
 <mx:Button x="228" y="239" label="Click" click="btn_click()"/>
 <mx:Script>
 <!--[CDATA[
 import mx.controls.Alert;
 import mx.managers.PopUpManager;
 import mx.controls.Text;

 private function btn_click():void{
 //dispatchEvent(new Event("tw_click"));
 var a:PopUpDemo = this.owner as PopUpDemo;
 a.tit_usr.text = this.tw_usr.text;
 a.tit_psw.text = this.tw_psw.text;
 PopUpManager.removePopUp(this);
 }
 ]]-->
 </mx:Script>

</mx:TitleWindow>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: