`
msyspacer
  • 浏览: 9918 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Flex4 弹出窗口的数据交互

 
阅读更多

取出数据
  • 使用组件属性,设置返回字段的getter来获取数据

主程序

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   applicationComplete="init()">
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.managers.PopUpManager;
			import mx.controls.Alert;
			import mx.events.*;
			
			import views.*;
			
			protected var simpleWindow:layoutPop;
			
			protected function init():void
			{
				simpleWindow = new layoutPop();
				//添加响应事件
				simpleWindow.addEventListener(layoutPop.LOGINNING,onLogin,false,0,true);
				login.addEventListener(MouseEvent.CLICK,openLoginWindow);
			}
			protected function onLogin(event:Event):void
			{
				Alert.show(simpleWindow.username+"\n"+simpleWindow.password);
			}
			protected function openLoginWindow(event:Event):void
			{
				PopUpManager.addPopUp(simpleWindow,this,true);
				PopUpManager.centerPopUp(simpleWindow);
			}
		]]>
	</fx:Script>
		<s:VGroup verticalCenter="0" horizontalCenter="0">
			<s:Button horizontalCenter="0" verticalCenter="0" id="login" label="Login"/>
		</s:VGroup>
</s:Application>

 弹出Window layoutPop

<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300" close="closeWindow()">
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			//添加元数据方便MXML代码提醒 
			[Event(name="loggingIn")]
			import mx.managers.PopUpManager;
			//定义事件
			public static const LOGINNING:String = "loggingIn";
			//绑定两个字符串
			[Bindable]
			public var _username:String="";
			public function get username():String
			{
				return _username;
			}
			
			[Bindable]
			public var _password:String="";
			public function get password():String
			{
				return _password;
			}
			protected function closeWindow():void
			{
				PopUpManager.removePopUp(this);
			}
			protected function sendLogin():void
			{
				dispatchEvent(new Event(LOGINNING));
				closeWindow();
			}
			
		]]>
	</fx:Script>
	<!--使用Form提交数据,并且绑定字符-->
	<s:Form>
		<s:FormItem label="Username">
			<s:TextInput id="usernameField" text="@{_username}"/>
		</s:FormItem>
		<s:FormItem label="Password">
			<s:TextInput id="passwordField" text="@{_password}" displayAsPassword="true"/>
		</s:FormItem>
		<s:FormItem>
			<s:Button label="Login in" click="sendLogin()"/>
		</s:FormItem>
	</s:Form>
</s:TitleWindow>


  •  使用事件属性,自定义事件获得返回值
主程序
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   applicationComplete="init()">
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.managers.PopUpManager;
			import mx.controls.Alert;
			import mx.events.*;
			import action.LoginEvent;
			
			import views.*;
			
			protected var simpleWindow:ReayoutPop;
			
			protected function init():void
			{
				simpleWindow = new ReayoutPop();
				//添加响应事件
				simpleWindow.addEventListener(LoginEvent.LOGGING,onLogin,false,0,true);
				login.addEventListener(MouseEvent.CLICK,openLoginWindow);
			}
			protected function onLogin(event:LoginEvent):void
			{
				//通过LoginEvent的事件来获取字段值
				Alert.show(event.username+"\n"+event.password);
			}
			protected function openLoginWindow(event:Event):void
			{
				PopUpManager.addPopUp(simpleWindow,this,true);
				PopUpManager.centerPopUp(simpleWindow);
			}
		]]>
	</fx:Script>
		<s:VGroup verticalCenter="0" horizontalCenter="0">
			<s:Button horizontalCenter="0" verticalCenter="0" id="login" label="Login"/>
		</s:VGroup>
</s:Application>
 弹出窗口 ReayoutPop
<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300" close="closeWindow()">
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import action.LoginEvent;
			//添加元数据方便MXML代码提醒 
			[Event(name="loggingIn")]
			import mx.managers.PopUpManager;
			//定义事件
			public static const LOGINNING:String = "loggingIn";
			//绑定两个字符串
			[Bindable]
			public var _username:String="";
			public function get username():String
			{
				return _username;
			}
			
			[Bindable]
			public var _password:String="";
			public function get password():String
			{
				return _password;
			}
			protected function closeWindow():void
			{
				PopUpManager.removePopUp(this);
			}
			protected function sendLogin():void
			{
				//使用LoginEvent事件
				var event:LoginEvent = new LoginEvent(LoginEvent.LOGGING);
				event.username = _username;
				event.password = _password;
				dispatchEvent(event);
				closeWindow();
			}
			
		]]>
	</fx:Script>
	<!--使用Form提交数据,并且绑定字符-->
	<s:Form>
		<s:FormItem label="Username">
			<s:TextInput id="usernameField" text="@{_username}"/>
		</s:FormItem>
		<s:FormItem label="Password">
			<s:TextInput id="passwordField" text="@{_password}" displayAsPassword="true"/>
		</s:FormItem>
		<s:FormItem>
			<s:Button label="Login in" click="sendLogin()"/>
		</s:FormItem>
	</s:Form>
</s:TitleWindow>
 自定义事件LoginEvent 
package action
{
	import flash.events.Event;
	public class LoginEvent extends Event
	{
		[Event(name="logging",type="LoginEvent")]
		public static const LOGGING:String = "logging";
		public var username:String;
		public var password:String;
			public function LoginEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false)
			{
				super(type,bubbles,cancelable);
			}
	}
}
 
 
传入数据
  • 通过定义Setter或者公共函数传入数据
主程序
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   applicationComplete="init()">
	<fx:Declarations>
		<!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.managers.PopUpManager;
			
			import window.UserWindow;
			
			protected var _usersWindow:UserWindow;
			
			protected function init():void
			{
				_usersWindow = new UserWindow();
				login.addEventListener(MouseEvent.CLICK,openWindow);
			}
			
			protected function openWindow(event:Event):void
			{
				PopUpManager.addPopUp(_usersWindow,this,true);
				generateData();
			}
			
			protected function generateData():void
			{
				var users:Array = new Array();
				var totalRecords:uint = Math.round(Math.random()*100);
				var name:String;
				for (var i:uint = 0;i<totalRecords;i++)
				{
					name = "User"+i.toString();
					users.push({name:name,email:name+"@system.com"});
				}
				_usersWindow.users = users;
			}
		]]>
	</fx:Script>
	<s:VGroup verticalCenter="0" horizontalCenter="0">
		<s:Button horizontalCenter="0" verticalCenter="0" id="login" label="Login"/>
	</s:VGroup>
</s:Application>
 窗口文件UserWindow
<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   width="400" height="300"
			   title="User Manager({_users.length}users)"
			   close="closeWindow()"
			   creationComplete="init()">
	<fx:Declarations>
		<!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.managers.PopUpManager;
			
			[Bindable]
			private var _users:Array;
			public function get users():Array
			{
				return _users;
			}
			public function set users(value:Array):void
			{
				_users = value;
			}
			protected function closeWindow():void
			{
				PopUpManager.removePopUp(this);
			}
			protected function init():void
			{
				if(isPopUp)
					PopUpManager.removePopUp(this);
			}
		]]>
	</fx:Script>
	<s:DataGrid id="usersList" verticalCenter="0" horizontalCenter="0" width="100%" height="100%" dataProvider="{new ArrayCollection(_users)}"/>
</s:TitleWindow>
 
分享到:
评论

相关推荐

    Flex 弹出窗口的数据传输

    总的来说,理解并实现Flex弹出窗口的数据传输需要掌握Flex组件模型、事件处理机制以及数据共享的方法。在实际开发中,应根据项目需求选择合适的数据传递策略,同时考虑性能和可维护性。对于“博文链接:...

    flex 自动弹出窗口(右下角弹出,右上角弹出)

    自动弹出窗口的行为可以根据多种条件触发,比如用户交互、定时器事件、数据变化等。例如,可以监听某个按钮的点击事件,或者在后台数据加载完成后显示弹出窗口。 **4. 弹出窗口的动画效果** 为了增加用户体验,还...

    Flex使用弹出窗口为DataGrid添加新数据

    综上所述,Flex 3中通过TitleWindow为DataGrid添加新数据的过程包括创建TitleWindow作为弹出对话框,设计表单获取用户输入,处理“添加”按钮的点击事件以将新数据添加到DataGrid的数据源,以及在主应用中触发...

    flex 苹果桌面效果的弹出窗口

    标题中的“flex 苹果桌面效果的弹出窗口”指的是使用Adobe Flex技术在苹果桌面环境中实现类似苹果OS X系统的弹出窗口效果。Flex是一种开源的、基于ActionScript的框架,用于构建富互联网应用程序(RIA),它允许...

    flex 弹出窗口选择,支持autocomplete功能

    在本文中,我们将深入探讨如何在Flex环境中实现一个具有autocomplete(自动补全)功能的弹出窗口选择器。Flex是一种基于ActionScript的开源框架,用于构建富互联网应用程序(RIA),它允许开发者创建交互性强、用户...

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

    在Flex应用开发中,经常需要在主应用程序和弹出窗口(如对话框)之间交换数据,以便实现更加复杂的交互逻辑。 一、Flex中的组件层次结构 在Flex中,应用通常包含一个主程序(通常是Application类的实例),以及...

    用flex实现苹果样式的弹出菜单

    在本文中,我们将深入探讨如何使用Flex技术来创建一个类似于苹果风格的弹出菜单。Flex是一种基于ActionScript和MXML的开源框架,主要用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的数据绑定...

    flex仿qq右边弹出提示消息功能

    首先,我们要理解Flex中的弹出窗口(Pop-up Window)机制。在Flex中,我们可以使用PopUpManager类来创建和管理弹出窗口。这个类提供了打开和关闭窗口,以及调整窗口大小和位置的方法。通过实例化PopUpManager并传递...

    JS+CSS弹出式交互层

    4. **交互反馈**:例如,当用户提交表单时,JS可以验证数据,显示错误信息,或者在成功提交后关闭弹出层。 结合`btn_clz.gif`这个文件名,我们可以推测这是一个用于触发弹出层的按钮的图形资源。在实际应用中,该...

    datagrid单元格上点击弹出窗口(官网例子)

    2. **DataGridWithPopUpEditor.as** - 这个文件可能是主datagrid组件的类,其中包含了对自定义编辑器的引用和配置,比如设置哪一列使用这个弹出窗口编辑器,以及相关的事件处理逻辑。 3. **PopUpEditor.mxml** - 这...

    Flex-TitleWindow的弹出窗口中播放一段影像.zip

    TitleWindow是Flex中的一个组件,常用于创建带有标题的弹出窗口,类似于操作系统中的对话框。在Flex中,TitleWindow可以自定义内容,包括文本、图像以及视频等多媒体元素。 本文将详细讲解如何在Flex的TitleWindow...

    Flex弹出窗口请求Action函数示例

    综上所述,Flex弹出窗口请求Action函数示例详细介绍了在Flex环境中创建弹出窗口以及与后端进行交互的过程。开发者需要掌握Flex的组件使用、事件处理、与后端的通信机制以及用户界面设计的原则。在技术选择上,亦需...

    FLEX4 s:dataGrid单元格弹出可文本

    4. **显示自定义组件**:根据需要,你可以使用`PopUpManager`类将自定义组件以弹出窗口的形式显示出来: ```actionscript var customComponent:CustomComponent = new CustomComponent(); PopUpManager.addPopUp...

    Flex4中文帮助文档

    - `popup.css`:可能用于弹出窗口或提示框的样式定义。 - `content-ie6.css`:专门为Internet Explorer 6浏览器定制的样式,考虑到该浏览器对CSS的支持有限。 4. **学习路径**: - **基础教程**:了解Flex4的...

    flex拖拽形成柱状图,点击弹出图片窗口,柱状图用法

    可以使用`PopUpManager`类来管理弹出窗口的生命周期。 5. **自定义样式和交互**: Flex允许我们自定义柱状图的外观和行为。可以通过CSS样式表或直接在MXML代码中设置颜色、边框、渐变等属性。此外,还可以添加提示...

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

    PopUpManager类是用于管理Flex中的弹出窗口的一个类。它提供了一些方法来添加、移除和管理弹出窗口。例如,在本例中,我们就使用了"PopUpManager.addPopUp(wnd,this,false);"方法来以非模态方式弹出子窗口。 知识点...

    flex TitleWindow之间数据传输

    在Flex框架中,实现主页面与弹出窗口之间的数据交互是一项常见且实用的功能。本文将深入解析如何利用TitleWindow组件进行数据传输,包括从主应用向弹出窗口传递数据以及反之亦然的过程。通过实际代码示例,我们将...

Global site tag (gtag.js) - Google Analytics