Anderst als in Java fehlt in ActionScript die Möglichkeit den Inhalt zweier Arrays auf Gleicheit zu testen resp. liefert der Ausdruck ArrayA == ArrayB in der Regel (zu Recht) den Wert "false" weil ArrayA und ArrayB in der Regel auf verschiedene Speicheradressen verweisen (resp. Pointer haben). Um nun aber den INHALT der beiden Arrays auf Gleichheit zu testen verwende ich die folgende pragmatische Lösung: Ich wandle beide Arrays in Strings um und vergleiche dann diese beiden, wie im folgenden Beispiel, auf der "String-Ebene" ArrayA.join()==ArrayB.join() ACHTUNG: Das funktioniert natürlich nur solange die zu verlgeichenden Arrays aussschlisslich einfache Datentypen enthalten. Das bedeudet dann auch, dass wenn die Arrays referenziellen (Pointer) Typen wie z.B. Arrays, Objekte, ... enthalten, funkt der "Trick" natürlich nicht mehr, und es bleibt uns dann wohl nicht mehr viel anderes übrig, als dass wir die Arrays Feld um Feld miteinander vergleichen müssen.
25. Dezember 2007
18. Dezember 2007
Flex Datagrid::zur Laufzeit eine Leere Kolonne einfügen
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()" }
AS3 :: Mehrere Variablen auf der gleichen Zeile deklarieren
In ActionScript 3 können mehrere Variablen z.B. wie folgt auf der selben Codezeile deklariert werden: public var a:String=null, b: String = null; beachten sie dabei vor allem das Komma (",") zwischen den einzelnen Deklarationen an Stelle des Strichpunktes (";")
15. Dezember 2007
Mein AIRBase Blogg :: Worum geht's ?
Mit diesem Blog möchte ich einmal bis auf weiteres zwei Dinge erreichen:
- Die Funktionalität und Geschwindigkeit des Google Bloggers testen: Ziel hierbei ist es für mich persönlich herauszufinden ob sich dieser Service als generelles "Notizbuch" zum spontanen Erfassen und Wiederfinden der bei der Arbeit mit den Adobe Entwicklungswerkzeugen (Flash, Flex, AIR) anfallenden persönlichen Gedanken und Schlüsselerfahrungen eignet.
- Spontanes Festhalten von "Key Lessonss learned" Mir ist dabei bewusst, dass hier "Key = Schlüssel" ein sehr subjektiver Begriff ist welcher sich im Verlauf meiner diesbezüglichen Fitness und derjenigen des geneigten Lesers im Verlaufe der Zeit relativieren wird. Trotzdem stammen alle hier festgehaltenen Tips&Tricks aus dem realen Leben eins (noch) Anfängers der sich mit der Entwicklung von vielleicht etwas komplexerer Anwendungen abmüht und sich deshab auch mit einer etwas anderst gewichtigten Problematik befasst als diese in den Standardwerken normalerweise beschrieben ist.

Modularisierung :: Code aus anderen Projekten verwenden
- Lösung: Oeffnen sie im Projekt A die Projekteigenschaften (mit rechter Maustaste auf das Projektverzeichnis klicken).
- Wählen sie dort die option "Properties"
- Wählen sie links im Selektionsbaum den Eintrag "Flex Build Path"
und dann rechts im Bild den Reiter [SourcePath] - Klicken sie auf den Knopf [Add Folder] und wählen sie den Pfad welchen sie innerhalb von A als Ausgangspfad für die Adressieurng der B-Komponent verwenden möchten. Dies kann das Projekt/Wurzelverzeichnis von B sein (empfohlen) aber auch jedes beliebige Unterverzeichnis.
- Im Projekt A erscheint nun unter dem Wuzelverzeichnis ein Eintrag welcher mit dem Vermerk [source path] beginnt. Falls dieser vorhanden ist können sie nun alle Dateien aus B, genauso wie sie unter den [source path] Knoten angezeigt werden, genauso ansprechen, als wäre dieser importiert B-Pfad ein Unterverzeichnis von A.
Beispiel: im Projekt B haben sie im Unterverzeichnis mxml/Coponents/Lists in der Datei InternalPopulatedList.mxml den Sourcecode für eine erweitertes mx:List Komponente gespeichert:
