用AS自定义事件

MyEvent.cs

package event
{
    import flash.events.Event;
    
    public class MyEvent extends Event
    {
        public static const MYEVENT:String="myevent";
        private var eventObject:int;
        public function MyEvent(type:String,i:int, bubbles:Boolean=false, cancelable:Boolean=false)
        {
            super(type, bubbles, cancelable);
            this.eventObject=i;
        }
        
        public function getEventObject():int{
            return eventObject;
        }
    }
}

TestEvent.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  creationComplete="application1_creationCompleteHandler()"
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Script>
        <![CDATA[
            import event.MyEvent;
            
            import mx.events.FlexEvent;
            
            protected function button1_clickHandler():void
            {
                var evt:MyEvent=new MyEvent(MyEvent.MYEVENT,2);//var evt:MyEvent=new MyEvent("myevent",2)
                dispatchEvent(evt);
                
            }
            
            protected function application1_creationCompleteHandler():void
            {
                this.addEventListener(MyEvent.MYEVENT,eventHandler);
                
            }
            
            private function eventHandler(e:MyEvent):void{
                trace(e.getEventObject());
            }
            
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <s:Button x="153" y="201" label="按钮" click="button1_clickHandler()"/>
</s:Application>

 

 

posted on 2012-09-10 14:55  雷、  阅读(84)  评论(0)    收藏  举报

导航