Flex自定义事件、传值
[html]定义自己的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;
}
}
}
[html]
测试页面:
<?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.监听处理事件返回的对象 www.zzzyk.com
* 这里面的设置的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>
作者:tengdazhang770960436
补充:web前端 , HTML 5 ,