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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |