Flex自定义事件、传值

定义自己的Event类:MyEvent

package com
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	
	public class MyEvent extends Event
	{
		public static const EVENT_TEST:String = "EventTest";
		
		public var data:Object;
		
		public static const dis:EventDispatcher = new EventDispatcher();
		
		public function MyEvent(type:String,bubbles:Boolean = false,canceable:Boolean = false,data:Object = null)
		{
			super(type,bubbles,canceable);
			this.data = data;
		}
		
	}
}
测试页面:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				layout="absolute"
				xmlns:test="com.*"  >
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import com.MyEvent;
			
			/*事件的执行过程:
			 * 1.为自定义事件类的EventDispatcher添加监听
			 * 2.实例化自定义事件
			 * 3.为事件的data赋值(用来把值传递给监听)
			 * 4.监听处理事件返回的对象
			 
			 * 这里面的设置的MyEvent.EVENT_TEST值的作用是
			 * 提供了一个监听器监听事件类型的标志,因为可能
			 * 我们会使用一个自定义事件类传递多种值,这个时
			 * 候不同种类的值之间的识别就需要通过事件的类型
			 * 来区别了
			 */
			
			private function test():void {
			    //为事件添加监听
				MyEvent.dis.addEventListener(MyEvent.EVENT_TEST,onEnd);
				setValue();
			}
			
			private function setValue():void {
				//实例化一个事件,并为data赋值
				var e:MyEvent = new MyEvent(MyEvent.EVENT_TEST,false,false,'dada');
				//把事件派发出去
				//注意这里需要使用的是自己的派发器,而不能使用此类做自带的派发方法dispatch();
				MyEvent.dis.dispatchEvent(e);
			}
			
			private function onEnd(e: MyEvent):void {
				//处理事件返回的值
				Alert.show(e.data.toString());
			}
			
		]]>
	</mx:Script>
	
	<mx:Button label="Test" id="btn" click="test()"/>
</mx:Application>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值