Flash Lite 2.x および 3.0 ヘルプ

for..in ステートメント

for (variableIterant in object) { ]
statement(s);
} 

オブジェクトのプロパティまたは配列のエレメントに対して反復処理を行うもので、各プロパティまたはエレメントに対して statement を実行します。for..in アクションでは、オブジェクトのメソッドは列挙されません。

プロパティの中には、for..in アクションで列挙できないものがあります。たとえば、_x_y のようなムービークリッププロパティは列挙されません。外部クラスファイルでは、インスタンスメンバーとは異なり、静的メンバーは列挙されません。

for..in ステートメントは、反復処理されるオブジェクトのプロトタイプチェーン内のオブジェクトのプロパティに対して反復します。オブジェクトのプロパティが最初に列挙され、次にそのプロトタイプのプロパティが列挙され、さらにそのプロトタイプのプロトタイプのプロパティが列挙されます。以下同様です。for..in ステートメントは、同じプロパティ名を繰り返して列挙しません。オブジェクト child にプロトタイプ parent が存在し、両方に prop プロパティがある場合、childfor..in ステートメントは、childprop プロパティは列挙しますが parentprop プロパティは無視します。

for..in ステートメントによって実行するステートメントブロックを囲む中括弧 ({}) は、実行するステートメントが 1 つしかない場合は必要ありません。

for..in ループをクラスファイル (外部 AS ファイル) 内に記述した場合、インスタンスメンバーをループで使用することはできませんが、静的メンバーはループで使用できます。ただし、クラスのインスタンスの FLA ファイル内に for..in ループを記述した場合、インスタンスメンバーは使用できますが、静的メンバーは使用できません。

パラメータ

variableIterant:String - 反復子の役割を果たし、オブジェクトのプロパティまたは配列内のエレメントを参照する変数の名前。

次の例では、for..in を使用したオブジェクトのプロパティに対する繰り返し処理を示します。

var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; 
for (var prop in myObject) { 
 trace("myObject."+prop+" = "+myObject[prop]); 
} 
// 出力
myObject.firstName = Tara 
myObject.age = 27 
myObject.city = San Francisco

次の例では、for..in を使用した配列のエレメントに対する繰り返し処理を示します。

var myArray:Array = new Array("one", "two", "three"); 
for (var index in myArray) 
trace("myArray["+index+"] = " + myArray[index]); 
// 出力
myArray[2] = three
myArray[1] = two
myArray[0] = one

次の例では、for..intypeof 演算子を使用して特定の型の子に対して反復処理を行います。

for (var name in this) { 
 if (typeof (this[name]) == "movieclip") { 
 trace("I have a movie clip child named "+name); 
 } 
}

メモ : ムービークリップが複数ある場合、その出力はそれらのクリップのインスタンス名で構成されます。

次の例では、ムービークリップの子を列挙し、それぞれを対応するタイムラインのフレーム 2 に進めます。RadioButtonGroup ムービークリップは親であり、_RedRadioButton__GreenRadioButton_、および _BlueRadioButton_ という複数の子を持っています。

for (var name in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); }

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート