[] 配列アクセス演算子

myArray = [ a0, a1,...aN ]
myArray[ i ] = value
myObject [ propertyName ]

指定されたエレメント (a0 など) で新しい配列または多次元配列を初期化するか、配列内のエレメントにアクセスします。配列アクセス演算子を使用すると、インスタンス、変数、およびオブジェクト名を動的に設定および取得できます。この演算子を使用してオブジェクトのプロパティにアクセスすることもできます。

シンタックス 1 : 配列は、エレメントと呼ばれるプロパティを持つオブジェクトです。各エレメントは、インデックスと呼ばれる番号で識別されます。配列を作成する場合は、エレメントを配列アクセス演算子 ([]) (角カッコ) で囲みます。配列には、さまざまなタイプのエレメントを格納できます。たとえば、次の配列 employee には 3 つのエレメントがあります。最初のエレメントは数値、2 番目と 3 番目のエレメントはストリング (引用符内) です。

var employee: Array = [15, "Barbara", "Jay"]; 

カッコをネストすると、多次元配列をシミュレートできます。ネスト可能な配列の深さは、256 レベルまでです。次のコードでは、3 つのエレメントで構成される配列 ticTacToe を作成します。各エレメントはそれぞれが 3 つのエレメントで構成される配列になっています。

var ticTacToe: Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; // プレビューモードで [デバッグ]-[変数のリストアップ] を選択して 
// 配列エレメントの一覧を見る

シンタックス 2 : 各エレメントに直接アクセスするには、エレメントのインデックスを [] (角カッコ) で囲みます。また、配列に新しいエレメントを追加したり、既存のエレメントの値を変更または取得することもできます。次の例に示すように、配列の最初のインデックスは常に 0 です。

var my_array: Array = new Array(); 
my_array[0] = 15; 
my_array[1] = "Hello"; 
my_array[2] = true; 

次の例のように角カッコ ([]) を使用して 4 番目のエレメントを追加できます。

my_array[3] = "George"; 

角カッコ ([]) を使用して多次元配列のエレメントにアクセスできます。最初の [] (角カッコ) のセットは元の配列のエレメントを示します。2 番目のセットはネストされた配列のエレメントを示します。次のコード行は、数値 6 を [出力] パネルに表示します。

var ticTacToe: Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; 
trace(ticTacToe[1][2]);// 6 を出力する

シンタックス 3 : eval() 関数の代わりに配列アクセス演算子 ([]) を使用して、ムービークリップ名の値またはオブジェクトのプロパティを動的に設定および取得できます。次のコード行は、数値 6 を [出力] パネルに表示します。

name["mc" + i] = "left_corner"; 

使用できるバージョン : ActionScript 1.0、Flash Lite 2.0

オペランド

myArray : Object - myArray 配列の名前。

a0, a1,...aN : Object - a0,a1,...aN 配列のエレメント。ネストされた配列を含む、すべてのネイティブタイプまたはオブジェクトインスタンスです。

i : Number - i 0 以上の整数インデックス。

myObject : Object - myObject オブジェクトの名前。

propertyName : String - propertyName オブジェクトのプロパティを指定するストリング。

戻り値

Object -

シンタックス 1 : 配列への参照。

シンタックス 2 : 配列に格納されたいずれかの値。ネイティブタイプまたはオブジェクトインスタンス (Array インスタンスを含む)。

シンタックス 3 : オブジェクトのいずれかのプロパティ。ネイティブタイプまたはオブジェクトインスタンス (Array インスタンスを含む)。

次の例では、新しい空の Array オブジェクトを作成する 2 つの方法を示しています。最初の行で角カッコ ([]) を使用しています。

var my_array: Array = []; 
var my_array: Array = new Array(); 

次の例では、配列 employee_array を作成し、trace() ステートメントを使用して、エレメントを [出力] パネルに表示します。4 行目で配列内のエレメントを変更し、5 行目では変更後の新しい配列を [出力] パネルに表示しています。

var employee_array = ["Barbara", "George", "Mary"]; 
trace(employee_array); // Barbara、George、Mary を出力する 
employee_array[2] = "Sam"; 
trace(employee_array); // Barbara、George、Sam を出力する

次の例では、[] (角カッコ) 内の式 ("piece" + i) を評価し、その結果をムービークリップ my_mc から取得する変数名として使用します。この例では、変数 i はボタンと同じタイムライン上にある必要があります。たとえば、変数 i の値が 5 である場合は、ムービークリップ my_mc の変数 piece5 の値が [出力] パネルに表示されます。

myBtn_btn.onRelease = function() { 
 x = my_mc["piece"+i]; 
 trace(x); 
}; 

次のコードでは、[] (角カッコ) 内の式を評価し、その結果をムービークリップ name_mc から取得する変数名として使用します。

name_mc["A" + i]; 

Flash 4 の ActionScript スラッシュシンタックスの使用法に詳しい場合は、eval() 関数を使用して同じ結果を得ることができます。

eval("name_mc.A" & i); 

次の ActionScript を使用すると、_root スコープ内のすべてのオブジェクトを繰り返し処理できます。デバッグ時に効果的な方法です。

for (i in _root) { 
 trace(i+": "+_root[i]); 
} 

代入ステートメントの左側で配列アクセス ([]) 演算子を使用して、インスタンス、変数、およびオブジェクト名を動的に設定することもできます。

employee_array[2] = "Sam";

関連項目

Array, Object, eval 関数