加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex自定义事件、传值

发布时间:2020-12-15 04:55:23 所属栏目:百科 来源:网络整理
导读:定义自己的Event类:MyEventpackage 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:Event
定义自己的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,'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>





(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读