`
wangcheng
  • 浏览: 1464428 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

Flex 弹出窗口的数据传输

阅读更多

这里通过一个实例演示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.    
  15.     private function initApp() : void {  
  16.  
  17.     }  
  18.  
  19.     private function showTitleWindow():void {  
  20.         var titleWindowInstance:ListTitleWindow =   
  21.             ListTitleWindow(PopUpManager.createPopUp(this, ListTitleWindow, false));  
  22.           
  23.         titleWindowInstance.title = "Welcome";  
  24.         titleWindowInstance.width = 400;   
  25.         titleWindowInstance.height = 300;     
  26.         titleWindowInstance.mainApp = this;    
  27.         titleWindowInstance.headTitle = "Select a item.";   
  28.         titleWindowInstance.url="http://localhost:8080/test.xml";  
  29.         titleWindowInstance.callbackFunction = this.myFunction;  
  30.           
  31.         PopUpManager.centerPopUp(titleWindowInstance);  
  32.      }  
  33.            
  34.     public function myFunction(bb:String):void {  
  35.         Alert.show(bb);  
  36.     }  
  37.  
  38.     ]]>  
  39.   
  40.     mx:Script>  
  41.        
  42.     <mx:Button x="63" y="96" label="Button" click="showTitleWindow();"/>  
  43.        
  44. mx:Application>  

这里使用HTTPService来获取初始化List的数据,也可以在父窗体中直接给子窗体的List赋值.

参考:

http://www.cflex.net/showfiledetails.cfm?ChannelID=1&Object=File&objectID=558

http://blog.csdn.net/jingqiu5/archive/2006/12/04/1429570.aspx

  • flex popup.rar (1.8 KB)
  • 描述: ListTitleWindow.mxml test.xml
  • 下载次数: 605
分享到:
评论

相关推荐

    flex TitleWindow之间数据传输

    通过上述分析,我们可以看出,在Flex中利用TitleWindow组件进行主应用与弹出窗口之间的数据传输,不仅流程清晰,而且易于实现。掌握了这一技巧,开发者可以更灵活地设计用户界面,提供更加丰富和互动的用户体验。

    FLEX TitleWindow之间数据传输的示例

    在Flex中,弹出窗口通常是使用TitleWindow组件来实现的。TitleWindow是一个容器组件,它显示了一个标题栏和内容区域,用来创建自定义的窗口界面。 当我们在Flex应用程序中需要在主窗口和TitleWindow之间进行数据...

    FLEX问题总汇 (总结篇)

    使用`PopUpManager.centerPopUp()`方法可以将弹出窗口居中显示,例如`PopUpManager.createPopUp(DisplayObject(Application.application), TitleWindow, true);` 以上就是关于FLEX的常见问题及解决方案的详细总结...

    flex 于地图结合

    例如,我们可以监听Map的click事件来处理用户的点击行为,添加标记或者弹出信息窗口。此外,通过数据绑定,我们可以将业务数据与地图上的标记关联,实现动态更新。 集合SSH,这里可能是指Struts、Spring、Hibernate...

    Flex A10如何连接蓝牙设备.docx

    本文将详细解释如何操作Flex A10来连接蓝牙设备,以便进行数据传输或其他功能的使用。 首先,要开启Flex A10的蓝牙功能,用户需要在设备的应用列表中找到“设置”应用。这通常是一个齿轮形状的图标,点击进入设置...

    Flex 即时聊天客户端(基于XAPP协议)

    5. `GeneralPopup.mxml`:这是一个通用的弹出窗口,可能用于显示各种提示信息或者执行其他通用操作,比如设置、帮助等。 6. `com` 目录:这个目录可能包含了项目的其他类和辅助组件,比如数据模型、业务逻辑和...

    用arcgis for flex 在地图上显示柱状图 饼状图和折线图

    2) 设置InfoTemplate,定义点击图层时弹出的窗口内容,包括饼状图;3) 利用dojox.charting库(或者Flex内置的Chart组件)创建饼状图,根据图层数据计算各部分的大小;4) 将饼状图嵌入到InfoTemplate中,当用户点击...

    Flex新手教程_入门级学习笔记

    - **BlazeDS配置及使用**:设置服务器端和客户端以实现数据传输。 - **回溯**:实现用户界面的状态管理。 - **Event**:用于处理用户交互。 - **代码优化**:提高性能和可维护性。 - **Demo**:创建一个简单的记事本...

    AS3+xml下拉菜单_下拉弹出框菜单

    弹出框菜单是浮动在其他元素上方的独立窗口。在AS3.0中,可以创建一个新的`Sprite`或`MovieClip`实例作为菜单容器,并通过设置其`x`和`y`坐标使其定位在适当位置。使用`Stage`的`addChild()`方法将弹出框添加到舞台...

    ArcGIS RIA 开发实践

    4. **InfoWindow窗体**:当用户点击地图上的特定位置时,弹出的信息窗口,可以展示该位置的相关信息。 #### 五、常用功能 1. **QueryTask**:用于查询地图服务中的要素信息,支持复杂的查询条件。 2. **FindTask**...

    TWaver_Web_4.0中文开发手册

    - **与 Extjs 弹出菜单整合**:解释了如何将 TWaver Web 的功能与 ExtJS 的弹出菜单组件相结合,以提供更丰富的用户体验。 - **前台 Table 组件**、**前台 Tree 组件**、**前台 Sheet 组件**、**前台 AlarmTable**...

    东哥面试题.md

    - **数据传输位置**:GET请求将参数附加在URL中,而POST请求则将参数放在请求体中。 - **数据量限制**:GET请求受URL长度限制,因此不适合传输大量数据;POST请求没有此限制。 - **安全性**:GET请求参数直接暴露在...

    SRIM Setup Message.pdf

    - **ComCtl32.ocx**:Microsoft Common Controls,提供弹出式命令控件。 - **ComDlg32.ocx**:Microsoft Common Dialog,支持弹出式帮助对话框。 - **MSFlxGrd.ocx**:Microsoft Flex-Grid,允许在程序中嵌入命令...

    ActionScript开发人员指南中文版

    显示弹出本机菜单(AIR) 处理菜单事件 本机菜单示例:窗口和应用程序菜单(AIR) 第章:AIR中的任务栏图标 关于任务栏图标 停靠栏图标 系统任务栏图标 Window任务栏图标和按钮 第章:使用文件系统 使用FileReference类 ...

    c#笔试集合

    #### 四、JavaScript弹出窗口 **知识点4:使用JavaScript弹出无边框窗口** - **描述**: 如何使用JavaScript脚本弹出一个无边框的窗口来显示另一个HTML页面。 - **解析**: 使用`window.open`方法可以打开新窗口,通过...

Global site tag (gtag.js) - Google Analytics