`
yexin218
  • 浏览: 970737 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

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

    博客分类:
  • Flex
阅读更多

主程序:TitleWindowDataTest.mxml

<?xml version="1.0" encoding="utf-8"?>
<!-- TitleWindowDataTest.mxml
  An application that uses custom pop-up TitleWindowData-->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="left" layout="vertical"
  initialize="initApp()">
<mx:Script><![CDATA[
import mx.containers.TitleWindow;
import mx.managers.PopUpManager;
import mx.collections.ArrayCollection;
[Bindable]public var gsBindMe:String = "Change me!" ;     
[Bindable]private var acDP2:ArrayCollection;
[Bindable]public var acItemsSelected:ArrayCollection;      //set by itemClick
private function initApp():void
{
  acDP2 = new ArrayCollection();
  acDP2.addItem({artist:"Pink Floyd",price:29.99,album:"Meddle"});
  acDP2.addItem({artist:"Pink Floyd",price:29.99,album:"More"});
  acDP2.addItem({artist:"Genesis",price:22.99,album:"Trespass"});
  acDP2.addItem({artist:"Yes",price:22.99,album:"Close to the Edge"});
  acDP2.addItem({artist:"King Crimson",price:21.99,album:"Wake of Posiedon"});
}//
private function showTitleWindow():void
{
  var titleWindowInstance:TitleWindowData =
        TitleWindowData(PopUpManager.createPopUp(this,
                 TitleWindowData,
                 false));     //instantiate and show the title window
  PopUpManager.centerPopUp(titleWindowInstance);
  titleWindowInstance.title = "Non-Modal Title Window Data";//built-in property
  titleWindowInstance.width = 400;                 //built-in property
  titleWindowInstance.height = 450;                 //built-in property  
  titleWindowInstance.mainApp = this;                      //Reference to the main app scope
  titleWindowInstance.gnMyNumber = parseFloat(tiMyNumber.text);  //Pass a simple value to the popup
}
private function showSelectedItems(event:Event):void
{
   acItemsSelected = new ArrayCollection(dg2.selectedItems)
}
]]></mx:Script>
  <mx:Label text="Main App" fontSize="18" />
<mx:Text text="Selected Items will be passed into the pop-up. Select an item and click 'Show Title Window' button"  width="300"/>
<mx:DataGrid id="dg2" allowMultipleSelection="true" itemClick="showSelectedItems(event)"
   dataProvider="{acDP2}" >
  <mx:columns>
   <mx:Array>
    <mx:DataGridColumn headerText="Artist" dataField="artist" />
    <mx:DataGridColumn headerText="Price" dataField="price" editable="true"/>
    <mx:DataGridColumn headerText="Album" dataField="album" />
   </mx:Array>
  </mx:columns>    
</mx:DataGrid>
<mx:HBox >
  <mx:Label text="MyNumber:"  width="100"/>
  <mx:TextInput id="tiMyNumber"  text="99"/>
</mx:HBox>
<mx:HBox >
  <mx:Label text="Bind Me"  width="100"/>
  <mx:TextInput id="tiBindMe" text="{gsBindMe}"
   change="gsBindMe = tiBindMe.text"/>
</mx:HBox>
<mx:Button label="Show Title Window (Non-Modal)" click="showTitleWindow()"/>
<mx:HBox >
  <mx:Text text="Final Selection: From item selected in pop-up"  width="100"/>
  <mx:TextInput id="tiFinalSelection"/>
</mx:HBox>  
</mx:Application> 

 自定义组件:TitleWindowData.mxml

<?xml version="1.0" encoding="utf-8"?>
<!-- TitleWindowData.mxml
  A sample custom pop-up that extends TitleWindow-->
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
  creationComplete="initComponent()"
  showCloseButton="true"
  close="closeWindow()">
<mx:Script><![CDATA[
  import mx.managers.PopUpManager;
  import mx.collections.ArrayCollection;
[Bindable]public var mainApp:TitleWindowDataTest = null;  
[Bindable]public var gsMyString:String;      
[Bindable]public var gnMyNumber:Number;      
[Bindable]public var acItemsSelected:ArrayCollection;
private function initComponent():void
{
}
private function closeWindow():void
{
   PopUpManager.removePopUp(this);
}//closeWindow
private function showFinalSelection(oEvent:Event):void
{
   mainApp.tiFinalSelection.text = oEvent.target.selectedItem.album;
}//showFinalSelection
]]></mx:Script>
<mx:Text text="The data grid below shows the selectedItems in the data grid in the Main app. This dataProvider is bound to a local variable which is set by Main App datagrid itemClick. Select additional items(ctrl-click) in Main App, they will display here. Select an item here. It will display in Main App 'Final Selection' control." width="300" />
<mx:DataGrid id="dg2" rowCount="3"
   dataProvider="{mainApp.acItemsSelected}"
   change="showFinalSelection(event)" >
  <mx:columns>
   <mx:Array>
    <mx:DataGridColumn headerText="Artist" dataField="artist" />
    <mx:DataGridColumn headerText="Price" dataField="price" editable="true"/>
    <mx:DataGridColumn headerText="Album" dataField="album" />
   </mx:Array>
  </mx:columns>    
</mx:DataGrid>
<mx:HBox >
  <mx:Label id="lblMyNumber" text="{gnMyNumber}"  width="100"/>
  <mx:Text text="Bound to local variable set at pop-up. Changes to Main App control do NOT change this" width="200" />
</mx:HBox>
<mx:HBox >
  <mx:Label text="{mainApp.gsBindMe}"  width="100"/>
  <mx:Text text="Bound to mainApp local variable via passed in reference. Changes in Main App DO change this." width="200"  />
</mx:HBox>  
</mx:TitleWindow> 

 效果如下:

http://www.box.net/shared/cbb3pqbrmx

 

Original paper:http://benben.iteye.com/blog/278275

 

分享到:
评论

相关推荐

    flex-messaging系列jar包

    Flex Messaging系列JAR包是Adobe Flex与Java之间进行通信的核心组件,主要负责建立富互联网应用程序(RIA)与服务器之间的消息传递。这些JAR文件包含了多种服务和协议的支持,使得Flex客户端能够与Java后端无缝交互...

    spring-flex-1.5.0.M2-dist.zip

    4. **SBI(Spring BlazeDS Integration)**:这是Spring Flex的一个重要组成部分,它提供了与Adobe BlazeDS的集成,BlazeDS是Adobe提供的一个免费服务器端套件,用于在Flex和Java应用之间传递数据。 5. **Flex构建...

    flex-2.6.4.tar.gz

    1. **源代码**:压缩包内的"flex-2.6.4"目录应该包含了Flex的所有源代码文件,包括主程序、库、测试用例、示例和文档等。 2. **主程序**:主程序文件,如`flex.c`和`flex.h`,这些文件用于构建Flex词法分析器生成...

    flex-messaging-core.jar

    这个Java Archive (JAR) 文件包含了实现AMF(Action Message Format)协议所需的类库,AMF是一种高效的数据序列化协议,广泛用于Flash Player和Flex应用程序与服务器之间的数据交换。 Flex框架是一个开源的开发工具...

    Flex 弹出窗口的数据传输

    标题中的“Flex 弹出窗口的数据传输”指的是在Adobe Flex应用程序中如何实现在弹出窗口(通常是PopUpWindow或ModalDialog)与主应用程序之间进行数据交互。Flex是一种用于构建富互联网应用程序(RIA)的开放源代码...

    flex-2.6.4.tar

    flex-2.6.4

    flex-messaging-core-4.7.3.jar

    flex-messaging-core-4.7.3.jar 最新版,下载了好长时间才下载下来,亲测可用!

    flex-2.5.39.tar.gz

    标题中的"flex-2.5.39.tar.gz"是一个典型的Linux软件包文件名,它包含了一些关键信息。"flex"是这个包的核心组件,它是一个开源工具,用于生成词法分析器(lexer),通常在编译器构造、解析器开发或者处理结构化文本...

    flex-messaging-4.7.3最新版本的jar

    Flex Messaging是Adobe Flex框架的一部分,它提供了一个强大的实时通信平台,允许客户端(通常是Flex应用程序)与服务器进行双向数据交换。4.7.3版本是这个组件的一个更新,它可能包含了性能提升、错误修复以及新的...

    flex-2.6.0.tar.gz

    这个“flex-2.6.0.tar.gz”文件是一个针对Flex 2.6.0版本的源码压缩包,适用于Unix/Linux类操作系统。在Linux环境中,我们通常会用tar命令来解压这种格式的文件,例如:“tar -zxvf flex-2.6.0.tar.gz”。 Flex的...

    flex-iframe-1.4.6

    "flex-iframe-1.4.6"是一个开源项目,主要功能是为Adobe Flex应用程序提供在Flex组件中嵌入HTML iframe的能力。...通过flex-iframe-1.4.6,开发者能够更灵活地扩展Flex应用程序的功能,提供更加丰富的用户体验。

    spring-flex-1.0.1.RELEASE

    2. `spring-flex-core`:这个模块包含了处理 Flex 与 Spring 之间消息传递的类,如 `MessageBrokerServlet` 和 `RemotingDestination`。 3. `spring-flex-rpc`:该模块提供了基于 Spring AOP 的远程代理服务,允许...

    Flex-jsp两个必要jar包

    它负责在浏览器中加载Flex应用程序的SWF文件,并且处理与服务器的AMF(Action Message Format)通信,这是一种高效的数据交换协议,用于在Flex客户端和Java服务器之间传递复杂的数据结构。 `flex-sdk-merged.jar` ...

    flex------组件-----数据可视化

    在这个“flex------组件-----数据可视化”主题中,我们将探讨Flex如何帮助开发者创建交互式的数据图表和可视化效果。 Flex框架提供了一套强大的组件库,其中包括用于数据可视化的类和库。这些组件使得开发人员能够...

    Flex 弹出窗口代码

    `true`参数表示弹出窗口是模态的,即用户必须关闭窗口才能与主应用程序交互。 为了实现弹出窗口的关闭功能,可以在弹出窗口上添加一个关闭按钮,并监听其点击事件: ```xml &lt;!-- 在弹出窗口的MXML代码中 --&gt; 关闭...

    flex-messaging-core

    flex-messaging-core jar包

    spring-flex-1.5.0.RELEASE

    spring-flex-1.5.0.RELEASE spring-flex-1.5.0.RELEASE spring-flex-1.5.0.RELEASE spring-flex-1.5.0.RELEASE

Global site tag (gtag.js) - Google Analytics