| Refresh | Home EGTry.com

define a custom event that do target and bubble phase through displayobject chain


sample application

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onComplete()">
	<mx:Script>
		<![CDATA[
			import mx.events.FlexEvent;
			
			private function onComplete():void {
				
				text1.addEventListener("MyEvent",handle);
				panelId.addEventListener("MyEvent", handle);
				Application.application.addEventListener("MyEvent", handle);
				Application.application.systemManager.addEventListener("MyEvent", handle);
			
			}
	
			
			private function handle(event:Event):void {
				
				trace("event "+event.type+" originally from: "+event.target+", currentTarget to: "+event.currentTarget+" has bubble phase?"+event.bubbles+" eventPhase "+event.eventPhase);
				if (event.eventPhase==3) {
					//event.stopPropagation(); //it can be cancelled
				}
			}
						
		
			private function onClick(event:MouseEvent):void {
				text1.text="Change by actionscript"; // no event will be fired
				text1.dispatchEvent(new Event("MyEvent", true,true));
			}
			

			
			private function onKeyEnter(event:FlexEvent):void {
				var eventName:String=event.type; //mx.events.FlexEvent.ENTER
				text1.dispatchEvent(new Event("MyEvent", true,true));
			}
			

		]]>
	</mx:Script>
	
	<mx:Button x="178" y="43" label="Change Value" click="onClick(event)" />
	

	<mx:Panel id="panelId" x="42" y="88" width="467" height="201" layout="absolute">
		<mx:Label x="10" y="21" text="Enter Something" width="64" height="25"/>
		<mx:TextInput id="text1" x="109" y="19" width="264" 
			enter="onKeyEnter(event)" 
		height="27"/>

	</mx:Panel>

</mx:Application>


trace output after the user click or enter

event MyEvent originally from: CustomEventBubble0.panelId.text1, currentTarget to: CustomEventBubble0.panelId.text1 has bubble phase?true eventPhase 2
event MyEvent originally from: CustomEventBubble0.panelId.text1, currentTarget to: CustomEventBubble0.panelId has bubble phase?true eventPhase 3
event MyEvent originally from: CustomEventBubble0.panelId.text1, currentTarget to: CustomEventBubble0 has bubble phase?true eventPhase 3
event MyEvent originally from: CustomEventBubble0.panelId.text1, currentTarget to: [object _CustomEventBubble_mx_managers_SystemManager] has bubble phase?true eventPhase 3