当前位置: 移动技术网 > IT编程>网页制作>Html5 > Flex自定义事件、传值

Flex自定义事件、传值

2018年04月14日  | 移动技术网IT编程  | 我要评论
[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="https://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.2cto.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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网