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

转载 2012年03月21日 12:05:38
自定义带参数的事件应该明白:

        (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组件组件添加自定义事件

自定义组件如下:com.cp2
  • chenscmail
  • chenscmail
  • 2013年01月08日 13:45
  • 1833

9. SpringMVC 数据验证例子2 - 自定义数据验证规则

9. SpringMVC 数据验证例子2
  • Rickesy
  • Rickesy
  • 2016年03月08日 12:38
  • 1214

深入剖析Flex4与自定义布局关系

在学习Flex4的过程中,你对自定义布局的概念是否熟悉,这里和大家分享一下Flex4与自定义布局的关系,Flex4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身。您需要做的...
  • jonave
  • jonave
  • 2013年05月21日 17:15
  • 477

spring数据验证----自定义注解

commons-validator commons-validator 1.4.0 org....
  • qiemuxishui123
  • qiemuxishui123
  • 2014年01月02日 17:46
  • 2926

Flex 正则表达式 电话、邮箱验证

 一、常用验证 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|...
  • u010931818
  • u010931818
  • 2014年06月25日 09:41
  • 1385

flex4事件监听与自定义事件分发(三)

1.我们来说一下自定义事件子类。什么时候创建新的事件类以及怎么创建。            (1)说一下,我们什么时候需要自定义事件类。举例说明,在flex中事件的基类是Event,而当我们点击某个按...
  • jinxiumeihappy
  • jinxiumeihappy
  • 2013年07月05日 14:32
  • 1058

Flex页面跳转时候进行值的传递;

众所周知Flex主要用于B/S结构程序的开发,凡是这类型的开发都存在页面间的传值的问题,通常一般的B/S开发主要不外乎使用地址修改法,隐藏表单域等方法,但是这些方法在Flex中确没有用,      ...
  • u010509143
  • u010509143
  • 2014年01月08日 13:40
  • 711

spring MVC自定义校验器

SpringMVC介绍之Validation       对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。SpringMV...
  • JavaMoo
  • JavaMoo
  • 2017年07月05日 22:29
  • 558

Jquery Validate 相关参数及常用的自定义验证规则

Jquery Validate 相关参数 //定义中文消息 var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子...
  • xh16319
  • xh16319
  • 2013年08月15日 18:04
  • 80633

selenium对flex程序的自动化测试

因为公司的项目需要导入selenium对flex程序进行测试,我研究了一段时间稍有成就,因为在研究过程中发现selenium对flex的应用资料比较少,当然在这里也学到一些东西。所以研究后就把我学到的...
  • wangyutian2011
  • wangyutian2011
  • 2015年03月25日 10:19
  • 1142
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:flex有参数的自定义事件,数据验证测试
举报原因:
原因补充:

(最多只允许输入30个字)