Istnieją dwa sposoby tworzenia tablic asocjacyjnych w języku ActionScript 3.0. Pierwszy z nich to użycie instancji Object. Za pomocą instancji klasy Object można zainicjować tablicę z literałem obiektu. Wystąpienie klasy Object, określane również jako
obiekt ogólny
, jest funkcjonalnie identyczne z tablicą asocjacyjną. Każda nazwa właściwości obiektu generycznego działa jak klucz zapewniający dostęp do zapisanych wartości.
Poniższy przykład ilustruje tworzenie tablicy asocjacyjnej o nazwie
monitorInfo
za pomocą literału obiektu w celu zainicjowania tablicy za pośrednictwem dwóch par kluczy i wartości.
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
Jeśli nie trzeba inicjować tablicy w chwili deklaracji, można użyć konstruktora Object w celu utworzenia tablicy, zgodnie z poniższym przykładem.
var monitorInfo:Object = new Object();
Gdy tablica zostanie utworzona za pomocą literału obiektu lub konstruktora klasy Object, można dodać nowe wartości do tablicy, korzystając z operatora dostępu do klasy (
[]
) lub operatora kropki (
.
). Poniższy przykład ilustruje dodawanie dwóch nowych wartości do zmiennej
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
Należy pamiętać, że klucz o nazwie
aspect ratio
zawiera znak spacji. Jest to dopuszczalne w przypadku operatora dostępu do klasy (
[]
), spowoduje jednak wygenerowanie błędu w przypadku próby skorzystania z operatora kropki. Używanie spacji w nazwach kluczy jest w związku z tym niezalecane.
Drugim sposobem na utworzenie tablicy asocjacyjnej jest użycie konstruktora Array (lub konstruktora dowolnej klasy dynamicznej), a następnie użycie operatora dostępu do tablicy (
[]
) albo operatora kropki (
.
) w celu dodania pary klucz plus wartość do tablicy. W przypadku zdeklarowania tablicy asocjacyjnej, która ma być tablicą typu Array, nie można użyć literału obiektowego do inicjalizacji tablicy. Poniższy przykład ilustruje tworzenie tablicy asocjacyjnej o nazwie
monitorInfo
za pomocą konstruktora klasy Array oraz dodawanie klucza o nazwie
type
oraz klucza o nazwie
resolution
, wraz z ich wartościami.
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
Wykorzystanie do utworzenia tablicy asocjacyjnej konstruktora Array nie przynosi żadnej korzyści. W przypadku tablic asocjacyjnych nie można używać właściwości
Array.length
ani żadnej z metod klasy Array, nawet jeśli zostanie użyty konstruktor Array lub typ danych Array. Użycie konstruktora Array najlepiej jest pozostawić do czasu utworzenia tablic indeksowanych.