`

Flex 父窗口 子窗口 数据传递

    博客分类:
  • Flex
 
阅读更多

Flex 父窗口 子窗口 数据传递
2009-01-11 1:51

这里通过一个实例演示Flex父窗口和弹出的子窗口之间的数据传输。

先创建一个MXML component 命名为ListTitleWindow.mxml (Based on : TitleWindow)

xml 代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" height="300"  
  3.     creationComplete="initComponent()"  
  4.       showCloseButton="true"  
  5.       close="closeWindow()">  
  6.        
  7.     <mx:Script>  
  8.   
  9.         <CDATA  
  10.             
  11.          /* 数据xml格式如下:   
  12.             <items>  
  13.                 <item label="Tom" data="num001"/>  
  14.                 <item label="Lucy" data="num002"/>  
  15.             </items>   
  16.          */   
  17.            
  18.           import mx.managers.PopUpManager;   
  19.           import mx.rpc.events.ResultEvent;   
  20.           import mx.controls.Alert;   
  21.             
  22.           [Bindable]public var mainApp:Object = null;     
  23.           [Bindable]public var headTitle:String;           
  24.           [Bindable]public var url:String;   
  25.           [Bindable]public var selectedItem:Object;   
  26.           [Bindable]public var callbackFunction:Function;   //回调函数   
  27.             
  28.           private function initComponent():void {   
  29.              //listDataService.url = url;   
  30.              listDataService.send();   
  31.           }   
  32.             
  33.          //closeWindow   
  34.           private function closeWindow():void {   
  35.                 PopUpManager.removePopUp(this);   
  36.           }   
  37.             
  38.           private function submit():void {   
  39.               PopUpManager.removePopUp(this);   
  40.               if (selectedItem != null && callbackFunction != null) {   
  41.                   //调用父窗体的方法并以参数形式返回选择结果   
  42.                   callbackFunction.call(mainApp, selectedItem.data);   
  43.               }   
  44.           }   
  45.             
  46.           private function mySelection(oEvent:Event):void {   
  47.              selectedItem = oEvent.target.selectedItem;   
  48.           }      
  49.            
  50.          private function initListData(event:ResultEvent):void {   
  51.              //使用HTTPService返回的xml数据,初始化List数据   
  52.             dataList.dataProvider = event.result.items.item;   
  53.          }   
  54.   
  55.         >  
  56.     </mx:Script>  
  57.   
  58.     <mx:HTTPService id="listDataService" url="{url}" showBusyCursor="true"  result="initListData(event)" />  
  59.   
  60.     <mx:Label text="{headTitle}"/>  
  61.        
  62.     <mx:List id="dataList" width="100%" color="blue" change="mySelection(event)" />  
  63.   
  64.     <mx:VBox width="100%">  
  65.         <mx:Label text="Selected State: {selectedItem.label}"/>  
  66.         <mx:Button label="OK" click="submit();"/>  
  67.     </mx:VBox>  
  68.        
  69. </mx:TitleWindow>  

使用一个MXML application 作为父窗体,代码如下

xml 代码
  1. xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
  3.     initialize="initApp()">  
  4.     <mx:Style source="styles/main.css"/>  
  5.                    
  6.     <mx:Script>  
  7.     
  8.      import mx.controls.Alert;
  9.      import flash.display.StageDisplayState;
  10.      import components.window.ListTitleWindow;
  11.      import mx.containers.TitleWindow;
  12.      import mx.managers.PopUpManager;
  13.      import mx.collections.ArrayCollection;
  14.      private function initApp() : void {
  15.      }
  16.      private function showTitleWindow():void {
  17.          var titleWindowInstance:ListTitleWindow =
  18.              ListTitleWindow(PopUpManager.createPopUp(this, ListTitleWindow, false));
  19.         
  20.          titleWindowInstance.title = "Welcome";
  21.          titleWindowInstance.width = 400;
  22.          titleWindowInstance.height = 300;   
  23.          titleWindowInstance.mainApp = this;  
  24.          titleWindowInstance.headTitle = "Select a item.";
  25.          titleWindowInstance.url="http://localhost:8080/test.xml";
  26.          titleWindowInstance.callbackFunction = this.myFunction;
  27.         
  28.          PopUpManager.centerPopUp(titleWindowInstance);
  29.       }
  30.          
  31.      public function myFunction(bb:String):void {
  32.          Alert.show(bb);
  33.      }
  34.      ]]>  
  35.   
  36.     mx:Script>  
  37.        
  38.     <mx:Button x="63" y="96" label="Button" click="showTitleWindow();"/>  
  39.        
  40. mx:Application>  
分享到:
评论

相关推荐

    Flex--主程序与弹出窗口之间传递数据

    这允许在弹出窗口打开后传递数据。 ```actionscript // 主程序中发布事件 var event:Event = new CustomEvent("dataTransfer"); event.data = someData; dispatchEvent(event); // 弹出窗口中监听事件 this....

    Flex打开新窗口将主窗口数据传给子窗口然后返回

    在Flex中,我们可以在打开子窗口时传递数据给子窗口。在本例中,主窗口在打开子窗口后,隐藏了自己,并将数据传递给了子窗口。具体实现方式是在打开子窗口后,将数据赋值给子窗口的相应属性,如"wnd.lbDeskId.text=...

    Flex父子窗口相互调用实现思路及

    - 通过设置子窗口的属性,比如`age`,向子窗口传递参数。 - 子窗口在需要调用父窗口函数时,通过设置其`callBack`属性为父窗口的一个函数(比如`myFunction`),从而实现调用。 ### 子窗口设计: 虽然这部分的代码...

    前端大厂最新面试题-2020阿里UC前端社招面经.docx

    props 是父组件传递给子组件的只读数据,而 state 是组件自身的状态数据。props 不能被子组件修改,而 state 可以被子组件修改。 10. React setState 的过程: React 中的 setState 方法用于更新组件的状态数据。...

    uni-app 基于chat(聊天窗口组件)实现uniapp-chat-master

    聊天组件可能会有父组件传递用户信息,子组件(如输入框)向父组件发送消息等交互。 5. **状态管理**:当聊天记录较多时,使用Vuex进行全局状态管理可以优化性能,避免每次加载都重新获取所有消息。Vuex可以帮助...

    自适应高度处理

    - 利用`postMessage`和`message`事件,可以在父页面和`iframe`之间传递信息,让`iframe`通知父页面其实际内容高度。这种方法适用于跨域情况,因为JavaScript直接访问`iframe`内容可能受到同源策略限制。 ```...

    usemodalwithnotear

    父组件可以通过props传递`showModal`状态到模态组件,同时监听子组件的关闭事件来更新状态。 5. **使用Vuex**: 对于更复杂的应用,可以考虑使用Vuex来集中管理应用的状态。在Vuex中,`showModal`可以是一个全局状态...

    45道CSS基础面试题(附答案).pdf

    CSS中一些属性是可以继承的,比如`font-size`、`font-family`和`color`等,它们可以从父元素传递到子元素。不可继承的样式属性包括边框(`border`)、内边距(`padding`)、外边距(`margin`)、宽度(`width`)和高度(`...

    2022年大厂前端面试手册新版1

    继承是指某些CSS属性可以从父元素传递到子元素。优先级计算按ID、类/属性/伪类、标签/伪元素顺序,每种类型的计数器从0开始,最后根据计数值确定优先级,数值越大,优先级越高。相同优先级时,后定义的样式覆盖前...

    div+css有实例,易学易懂

    - **链接的继承性**:链接样式如何传递给子元素。 - **cursor属性**:设置鼠标指针形状。 ### CSS容器属性 #### 什么是盒模型 - **内容与盒模型**:包括内容、填充、边框和外边距。 - **背景与盒模型**:背景色和...

    面试宝典之吊打面试官系列

    - **Cookies**: 用于服务器与客户端之间传递数据,大小有限制,随HTTP请求头发送。 - **SessionStorage**: 在浏览器窗口关闭后清空,适合临时保存状态信息。 - **LocalStorage**: 数据持久化存储,即使关闭浏览器...

Global site tag (gtag.js) - Google Analytics