Er zijn twee manieren om associatieve arrays te maken in ActionScript 3.0. De eerste manier is met behulp van een Object-instantie. Met een Object-instantie kunt u de array initialiseren met een objectliteraal. Een instantie van de klasse Object, ook een
algemeen object
genoemd, is functioneel gezien identiek aan een associatieve array. Elke eigenschapnaam van het algemene object wordt gebruikt als de sleutel die toegang geeft tot een opgeslagen waarde.
In het volgende voorbeeld wordt een associatieve array gemaakt met de naam
monitorInfo
en daarbij wordt een letterlijk teken voor objecten gebruikt om de array te initialiseren met twee sleutel- en waardeparen.
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
Als u de array niet hoeft te declareren op het declaratietijdstip, kunt u de constructor Object gebruiken om de array te maken. Dit gaat als volgt:
var monitorInfo:Object = new Object();
Nadat de array is gemaakt met een objectliteraal of de constructor van de klasse Object, kunt u nieuwe waarden aan de array toevoegen met de operator voor arraytoegang (
[]
) of de puntoperator (
.
). In het volgende voorbeeld worden twee nieuwe waarden toegevoegd aan
monitorArray
:
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
De sleutel met de naam
aspect ratio
bevat een spatieteken. Dit is mogelijk wanneer u de operator voor arraytoegang (
[]
) gebruikt. Er wordt echter een fout gegenereerd als u dit probeert met de puntoperator. Het gebruik van spaties in sleutelnamen wordt afgeraden.
De tweede manier om een associatieve array te maken is de Array-constructor (of de constructor van een willekeurige dynamische klasse) te gebruiken en vervolgens de operator voor arraytoegang (
[]
) of de puntoperator (
.
) te gebruiken om sleutel- en waardeparen aan de array toe te voegen. Als u uw associatieve array als type Array declareert, kunt u geen letterlijk teken voor objecten gebruiken om de array te initialiseren. In het volgende voorbeeld wordt een associatieve array met de naam
monitorInfo
gemaakt met de constructor Array en worden een sleutel met de naam
type
en een sleutel met de naam
resolution
toegevoegd, samen met hun waarden:
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
Het biedt geen voordelen de constructor Array te gebruiken om een associatieve array te maken. U kunt de eigenschap
Array.length
of de methoden uit de klasse Array niet gebruiken met associatieve arrays, zelfs bij gebruik van de constructor Array of het gegevenstype Array. De constructor Array is het meest geschikt voor het maken van geïndexeerde arrays.