`
kael____
  • 浏览: 19322 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

flex有参数的自定义事件,数据验证测试

    博客分类:
  • flex
阅读更多

自定义带参数的事件应该明白:

(1)自定义事件继承Event时的构造函数里面带参数。

(2)同样需要触发系统事件,然后派发自定义事件。

新建一个ActionScript Class,这个Class继承flash.events.Event。

TransferData.as类代码:

 

package  
{  
	import flash.events.Event;  
	
	public class TransferData extends Event  
	{  
		public static const CUSTOMEVENT:String = "customevent";  
		public var loginName:String;  
		public var password:String;  
		public function TransferData(type:String, loginName:String, password:String)  
		{  
			super(type);  
			this.loginName = loginName;  
			this.password = password;  
		}  
		override public function clone():Event{  
			return new TransferData(type,loginName,password);  
		}  
	}  
}  

然后创建component来设计并实现数据的传输和接受。

 

DispatchData.mxml代码如下

<?xml version="1.0" encoding="utf-8"?>  
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"   
		 xmlns:s="library://ns.adobe.com/flex/spark"   
		 xmlns:mx="library://ns.adobe.com/flex/mx"  
		 creationComplete="init()">  
	<fx:Metadata>  
		[Event(name="customevent",type="customEvent.TransferData")]  
	</fx:Metadata>  
	<fx:Declarations>  
		<!-- Place non-visual elements (e.g., services, value objects) here -->  
		<mx:Validator id="InputLoginName" source="{loginName}" property="text"/>  
		<mx:Validator id="InputPassword" source="{password}" property="text"/>  
	</fx:Declarations>  
	<fx:Script>  
		<![CDATA[  
			import mx.controls.Alert;  
			private function init():void{  
				dispatchData.addEventListener(MouseEvent.CLICK,clickHandle);  
			}  
			private function clickHandle(event:MouseEvent):void{  
				if(loginName.text != "" && password.text != ""){  
					canDispatchData();  
				}else{  
					Alert.show("Please input the content,contain login name and the password!");  
				}  
			}  
			private function canDispatchData():void{  
				var loginEvent:TransferData = new TransferData("customevent",loginName.text,password.text);  
				this.dispatchEvent(loginEvent);  
			}  
		]]>  
	</fx:Script>  
	<s:Panel x="0" y="0" width="300" height="200" title="The DataSource Panel">  
		<mx:Form x="10" y="10">  
			<mx:FormItem label="Login Name:" fontWeight="bold" required="true">  
				<s:TextInput id="loginName"/>  
			</mx:FormItem>  
			<mx:FormItem label="Password:" fontWeight="bold" required="true">  
				<s:TextInput id="password"/>  
			</mx:FormItem>  
			<s:Button label="DispatchData" id="dispatchData"/>  
		</mx:Form>  
	</s:Panel>  
</s:Group>  

ReceiveData.mxml代码如下

<?xml version="1.0" encoding="utf-8"?>  
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"   
		 xmlns:s="library://ns.adobe.com/flex/spark"   
		 xmlns:mx="library://ns.adobe.com/flex/mx">  
	<fx:Declarations>  
		<!-- Place non-visual elements (e.g., services, value objects) here -->  
	</fx:Declarations>  
	<s:Panel x="0" y="0" width="300" height="200" title="The DataReceive Panel">  
		<mx:Form x="10" y="10">  
			<mx:FormItem label="Login Name:" fontWeight="bold">  
				<s:TextInput id="loginName" editable="false"/>  
			</mx:FormItem>  
			<mx:FormItem label="Password:" fontWeight="bold">  
				<s:TextInput id="password" editable="false"/>  
			</mx:FormItem>  
			<s:Button label="ReceiveData" id="receiveData"/>  
		</mx:Form>  
	</s:Panel>  
</s:Group>  

LoginEvent.mxml代码



<?xml version="1.0" encoding="utf-8"?>  
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"   
		 xmlns:s="library://ns.adobe.com/flex/spark"   
		 xmlns:mx="library://ns.adobe.com/flex/mx"  
		 xmlns:component="*"  
		 creationComplete="init()"  
		 width="900" height="400"
		 >  
	<fx:Declarations>  
		<!-- Place non-visual elements (e.g., services, value objects) here -->  
	</fx:Declarations>  
	<fx:Script>  
		<![CDATA[  
			import mx.controls.Alert;  
			private var loginName:String;  
			private var password:String;  
			private function init():void{  
				dispatch.addEventListener(TransferData.CUSTOMEVENT,dispatchData);  
				receive.addEventListener(MouseEvent.CLICK,receiveData);  
			}  
			private function dispatchData(event:TransferData):void{  
				loginName = event.loginName;  
				password = event.password;  
				Alert.show("loginName:"+loginName+"\npassword:"+password);  
			}  
			private function receiveData(event:MouseEvent):void{  
				receive.loginName.text = loginName;  
				receive.password.text = password;  
			}  
		]]>  
	</fx:Script>  
	<component:DispatchData id="dispatch" x="100" y="100"/>  
	<component:ReceiveData id="receive" x="500" y="100"/>  
</s:Group>  

在Flex工程主程序里面引入component即可

<?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"  
			   xmlns:component="*"  
			   minWidth="955" minHeight="600"  
			   horizontalCenter="0" verticalCenter="0">  
	<fx:Declarations>  
		<!-- Place non-visual elements (e.g., services, value objects) here -->  
	</fx:Declarations>  
	<s:Panel title="Show dispatch and receive data"  
			 horizontalCenter="0" verticalCenter="0">  
			<component:LoginEvent/>  
	</s:Panel>  
</s:Application>  

 

 

 

界面如下:

 



分享到:
评论

相关推荐

    FLEX教程-FLEX教程

    - 运行测试并验证结果。 #### 19. Demo10:DataGrid - **DataGrid**: Flex 中用于展示数据表格的组件。 - **功能**: - 动态加载数据。 - 排序、筛选等功能。 - 数据编辑支持。 #### 20. Flex 和 Java 通信 -...

    flex编译

    9. **扩展和自定义**:Flex SDK允许开发者通过自定义编译器配置文件(flex-config.xml)来扩展编译器行为,实现特定的编码规范或项目需求。 总之,Flex编译涉及到了ActionScript和MXML的语法理解、Flex SDK的使用、...

    flex4.5学习笔记

    - **数据验证**: 确保输入的数据符合预期的格式和范围。 - **数据格式化**: 如日期格式化、数字格式化等,以提高用户体验。 **知识点11:进一步了解数据处理** - **高级数据处理**: 包括数据过滤、排序、聚合等操作...

    flex3的cookbook书籍完整版dpf(包含目录)

    flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...

    spring-flex-reference

    AMF(Action Message Format)是一种用于Flash/Flex与服务器端进行通信的数据交换格式。配置AMF Message Destinations,使得Flex客户端可以通过AMF协议发送消息到服务器端。 **使用JMS Message Destinations:** ...

    使用BlazeDS实现Java和Flex通信

    - 测试与Java服务端的数据交互是否正常。 #### 七、总结 本文详细介绍了一种使用BlazeDS实现Java与Flex之间通信的方法。通过这些步骤,开发者可以建立起一个基本的通信框架,并在此基础上扩展更多的功能。BlazeDS...

    树的节点添加,下载

    在实际应用中,开发者可能会创建一个测试数据集,模拟用户的各种操作,包括选择节点、触发事件等,以确保树组件的正确性。 总结,Flex Tree在处理层次数据时提供了丰富的功能。通过理解数据模型、节点操作以及与...

    ADOBE FLEX 和 ADOBE FLASH BUILDER 开发手机应用程序

    - **设备上的测试**:直接在目标设备上测试应用是验证其功能和性能的最佳方式。 #### 7. 打包与发布 **打包与发布** 当应用开发完成后,就需要对其进行打包以便发布到相应的应用商店。 - **导出 Android APK 包*...

    IT技术文章示例

    利用BlazeDS,Flex客户端可以订阅Java服务器上的事件,实时获取更新数据,同时也可以调用服务器端的业务逻辑方法。 ### 10. ASP.NET的线程同步问题 ASP.NET是Microsoft提供的一种Web开发框架,它使用线程池来处理...

    sql-explorer附件

    开发团队可以使用它来测试和验证数据库操作,确保代码的正确性。 五、学习与进阶 掌握SQL Explorer需要对SQL语言有基本了解,同时需要熟悉Flex开发环境。Adobe Flex Builder或IntelliJ IDEA等集成开发环境(IDE)...

    QTP11下载地址

    4. **数据驱动测试**:有效利用数据表和其他数据源,实现测试案例的参数化。 5. **调试技巧**:了解如何使用调试工具定位问题所在,提高调试效率。 #### 六、QTP11与其他测试工具的比较 - **Selenium**:Selenium...

    LiveRoomDemo_Server-master.zip_FlashMX/Flex源码_Flex_

    3. **AS Classes**:ActionScript类文件,包括业务逻辑、数据模型、事件处理等。 4. **Config Files**:配置文件,如server.xml或application.xml,用于设置服务器的行为和参数。 5. **Documentation**:可能包含...

    myShinyDataTableTester:一个存储库,用于测试在Shiny中使用数据表的方法

    这个项目旨在提供一个平台,用于测试和验证在Shiny应用中使用数据表的各种功能和技术。通过这个存储库,用户可以了解如何有效地集成和操作数据表,提升Shiny应用的交互性和用户体验。 **描述解析:** 该描述明确了...

    微信小程序设计-房贷计算器.zip

    微信小程序支持响应式布局,开发者可以利用wxss的flex布局或者媒体查询(media query)来确保房贷计算器在不同尺寸的设备上都有良好的显示效果。 8. 测试与发布: 开发完成后,使用微信开发者工具进行真机预览、...

    LR9.0英文版使用手册和各模块功能详细介绍

    LR9.0,全称LoadRunner 9.0,是一款由HP公司(现已被Micro Focus收购)开发的负载和性能测试工具,广泛应用于企业级应用系统性能验证。它能够模拟成千上万的虚拟用户来对系统进行压力测试,以评估系统在高负载下的...

    TWaver_Web_4.0中文开发手册

    - **开发流程**:描述了一个完整的 TWaver Web 应用程序从设计到部署的整个过程,包括需求分析、架构设计、编码实现、测试验证等多个阶段。 #### 三、视图数据管理 - **视图数据输出**:探讨了后台组件如何生成...

    使用Adobe LiveCycle Data Services ES 2 Version 3

    它通过集成Flex、Flash以及AIR应用,为开发者提供了强大的数据管理和实时通信能力。 #### 二、主要功能特性 1. **实时通信**:支持AMF (Action Message Format)协议,使得服务器与客户端之间的通信更为高效。 2. **...

Global site tag (gtag.js) - Google Analytics