Assoziative Arrays können in ActionScript 3.0 mit zwei verschiedenen Techniken erstellt werden. Bei der ersten Technik wird eine Object-Instanz verwendet. Bei Verwendung einer Object-Instanz können Sie Ihr Array mit einem Objektliteral initialisieren. Eine Instanz der Object-Klasse, auch als generisches Objekt bezeichnet, ist funktional mit einem assoziativen Array identisch. Jeder Eigenschaftsname des generischen Objekts dient als Schlüssel, der den Zugriff auf einen gespeicherten Wert ermöglicht.
Im folgenden Beispiel wird das assoziative Array monitorInfo erstellt und mithilfe eines Objektliterals mit zwei Schlüssel-Wert-Paaren initialisiert:
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
Wenn das Array nicht bei der Deklaration initialisiert werden muss, können Sie das Array wie folgt mit dem Object-Konstruktor erstellen:
var monitorInfo:Object = new Object();
Nachdem Sie das Array mit einem Objektliteral oder dem Konstruktor der Object-Klasse erstellt haben, können Sie ihm neue Werte hinzufügen, indem Sie entweder den Array-Zugriffsoperator ([]) oder den Punktoperator (.) verwenden. Im folgenden Beispiel werden monitorArray zwei neue Werte hinzugefügt:
monitorInfo["aspect ratio"] = "16:10"; // bad form, do not use spaces
monitorInfo.colors = "16.7 million";
trace(monitorInfo["aspect ratio"], monitorInfo.colors);
// output: 16:10 16.7 million
Beachten Sie, dass der Schlüssel aspect ratio ein Leerzeichen enthält. Dies ist bei Verwendung des Array-Zugriffsoperators ([]) möglich, führt jedoch bei Verwendung des Punktoperators zu einer Fehlermeldung. Es wird davon abgeraten, Leerzeichen in Schlüsselnamen zu verwenden.
Beim zweiten Verfahren zur Erstellung eines assoziativen Arrays wird der Array-Konstruktor (bzw. der Konstruktor einer beliebigen dynamischen Klasse) verwendet. Mit dem Array-Zugriffsoperator ([]) oder dem Punktoperator (.) werden anschließend Schlüssel-Wert-Paare zum Array hinzugefügt. Wenn Sie das assoziative Array als Array-Typ deklarieren, kann das Array nicht mit einem Objektliteral initialisiert werden. Im folgenden Beispiel werden mit dem Array-Konstruktor das assoziative Array monitorInfo erstellt sowie der Schlüssel type und der Schlüssel resolution mit den zugehörigen Werten hinzugefügt:
var monitorInfo:Array = new Array();
monitorInfo["type"] = "Flat Panel";
monitorInfo["resolution"] = "1600 x 1200";
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
Die Verwendung des Array-Konstruktors zur Erstellung eines assoziativen Arrays bietet keine Vorteile. Bei assoziativen Arrays können Sie nicht die Array.length-Eigenschaft und keine Methoden der Array-Klasse verwenden, auch wenn Sie den Array-Konstruktor oder den Array-Datentyp verwenden. Die Verwendung des Array-Konstruktors eignet sich am besten zur Erstellung indizierter Arrays.