17. Dezember 2007

creationComplete ist nicht der einzige Startpunkt ...

Kontext:: In praktisch jedem Codebeispiel der Fachliteratur wird die Initialisierung einer Flex Applikation über das "creationComplete" Ereignis angestossen - was meistens genügt und Sinn macht. Problem:: Für denn Fall aber, dass die zu ladenden Komponenten auf global gültige Werte zugreifen müssten, müssten diese Werte bereits VOR dem Laden der jeweiligen Komponenten initialisiert sein (Beispiel, ein lieferantenbewusstes DataGrid (siehe z.B. Artikel von Victor Rasputnis; Yakov Fain; Anatole Tartakovsky unter http://powerbuilder.sys-con.com/read/296230.htm) welches sich seine Initialdaten selber lädt, muss bei seiner Initialisierung wissen, von welchem Dienst diese Daten geliefert werden). Lösung:: Am besten initialisieren sie alle NICHT-GUI Elemente (z.B. Globale Variablen, Locator-Objekte, etc.) in einer über das "preinitialize" Event angestossene Routine währenddem sie die GUI-Elemente wie gehabt in der "creationComplete" Routine abhandeln. Beispiel:: ACHTUNG: "<" wurde durch "{" ersetzt und ">" durch "}" {mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preinitialize="onPreinitialize()" creationComplete="onCreationComplete()" }

Keine Kommentare: