ActionScript 3.0에서는 두 가지 방법으로 연관 배열을 만들 수 있습니다. 첫 번째 방법은 Object 인스턴스를 사용하는 것입니다. Object 인스턴스를 사용하면 객체 리터럴로 배열을 초기화할 수 있습니다.
일반 객체
라고도 하는 Object 클래스의 인스턴스는 연관 배열과 기능면에서 동일합니다. 일반 객체의 각 속성 이름은 저장된 값에 대한 액세스를 제공하는 키 역할을 합니다.
다음 예제는
monitorInfo
라는 연관 배열을 만들고, 객체 리터럴을 사용하여 두 개의 키/값 쌍으로 배열을 초기화합니다.
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
선언 시 배열을 초기화할 필요가 없을 경우에는 다음과 같이 Object 생성자를 사용하여 배열을 만들 수 있습니다.
var monitorInfo:Object = new Object();
객체 리터럴이나 Object 클래스 생성자를 사용하여 배열을 만든 후에는 배열 액세스(
[]
) 연산자나 도트 연산자(
.
)를 사용하여 배열에 새 값을 추가할 수 있습니다. 다음 예제에서는 두 개의 새로운 값을
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
aspect ratio
키에는 공백 문자가 포함됩니다. 이는 배열 액세스(
[]
) 연산자를 사용하는 경우에만 가능하고 도트 연산자를 사용하는 경우에 공백 문자가 포함되면 오류가 발생합니다. 그러나 키 이름에 공백을 사용하는 것은 권장되지 않습니다.
연관 배열을 만드는 두 번째 방법은 Array 생성자(또는 동적 클래스의 생성자)를 사용한 다음 배열 액세스(
[]
) 연산자나 도트 연산자(
.
)를 사용하여 배열에 키/값 쌍을 추가하는 것입니다. 연관 배열을 배열 유형으로 선언할 경우에는 객체 리터럴을 사용하여 배열을 초기화할 수 없습니다. 다음 예제에서는 Array 생성자를 사용하여
monitorInfo
라는 연관 배열을 만들고
type
이라는 키와
resolution
이라는 키를 각각의 값과 함께 추가합니다.
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
Array 생성자를 사용하여 연관 배열을 만들어도 별다른 이점은 없습니다. Array 생성자나 Array 데이터 유형을 사용하는 경우에도 연관 배열에
Array.length
속성이나 Array 클래스의 메서드를 모두 사용할 수 없습니다. Array 생성자는 인덱스 배열을 만드는 데 사용하는 것이 가장 좋습니다.