Flex4.5--Event(事件)
1 利用MXML声明事件
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="applicationCreateHandler()"> <fx:Script> <![CDATA[ protected function button1_clickHandler():void{ dispatchEvent(new Event("Clicked")); } protected function applicationCreateHandler():void{ this.addEventListener("Clicked",clickedHandler); } private function clickedHandler(e:Event):void{ trace("Event Is Listened"); } ]]> </fx:Script> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Metadata> [Event(name="Clicked",type="flash.events.Event")] </fx:Metadata> <s:Button x="344" y="194" id="button1" label="Click" click="button1_clickHandler()"/> </s:Application>
2 利用Action Script 声明事件
package com.event
{
import flash.events.Event;
public class MyEvent extends Event
{
public static const MY_EVENT:String = "myEvent";
private var eventObject:int;
public function MyEvent(type:String, param:int, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
this.eventObject=param;
}
public function getEventObject():int{
return this.eventObject;
}
}
}
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="applicationHandler()"> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import com.event.MyEvent; protected function buttonClickHandler():void{ var event:MyEvent = new MyEvent(MyEvent.MY_EVENT,2); dispatchEvent(event); } protected function applicationHandler():void{ this.addEventListener(MyEvent.MY_EVENT,eventHandler); } private function eventHandler(e:MyEvent):void{ trace("参数: "+e.getEventObject()); } ]]> </fx:Script> <s:Button x="284" y="300" label="Button" click="buttonClickHandler()"/> </s:Application>