Flex自定义事件、传值

来源:互联网 发布:大陆去台湾网络 编辑:程序博客网 时间:2024/06/06 14:59
定义自己的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: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>