当前位置:编程学习 > html/css >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,