Flex4.5--Event(事件)

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>

猜你喜欢

转载自nicky19870612.iteye.com/blog/2190328