Problem
Adobe Flex 3 definiert eine Reihe von Standard-Events, die über die Kontext-Hilfe bei der Quellcodeingabe mit einem gelbem Blitz gekennzeichnet werden. Häufig nutzt man die Kontext-Hilfe im Flex-Builder (STRG+SPACE ruft sie beim Deklarieren/in der Deklaration eines MXML-Tags auf) um die definierten Events anzuzeigen.
Bei Event-Namen wie creationComplete, applicationComplete, InitializationComplete usw… stellt sich häuft die Frage nach der Reihenfolge
Ansatz
Es werden alle Events, die mit einem gelben Blitz versehen sind, an die deklarierte Methode „eventListener“ übergeben. Diese Methode listet im Debug-Modus über die TRACE-Funktion die Reihenfolge und das Auftreten der Events auf.
Lösung
<?xml version="1.0" encoding="utf-8"?> <mx:Application added="eventListener(event)" addedToStage="eventListener(event)" applicationComplete="eventListener(event)" creationComplete="eventListener(event)" initialize="eventListener(event)" preinitialize="eventListener(event)" layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ import flash.utils.getQualifiedClassName; import mx.events.FlexEvent; private function eventListener(event:Event):void { if ( (event.target == this) || (event.target == this.myDataGrid) || (event.target == this.myPanel) ) { trace(getQualifiedClassName(this) + ".eventListener: " + getQualifiedClassName(event) + "." + event.type); trace("\ttarget: " + getQualifiedClassName(event.target)); } } ]]> </mx:Script> <mx:Panel added="eventListener(event)" addedToStage="eventListener(event)" creationComplete="eventListener(event)" id="myPanel" initialize="eventListener(event)" preinitialize="eventListener(event)"> <mx:DataGrid added="eventListener(event)" addedToStage="eventListener(event)" creationComplete="eventListener(event)" id="myDataGrid" initialize="eventListener(event)" preinitialize="eventListener(event)"/> </mx:Panel> </mx:Application>