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.