Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript 言語エレメント > ステートメント > for..in ステートメント | |||
for (variableIterant in object) {
statement(s);
}
オブジェクトのプロパティまたは配列のエレメントに対して反復処理を行うもので、各プロパティまたはエレメントに対して statement を実行します。for..in アクションでは、オブジェクトのメソッドは列挙されません。
プロパティの中には、for..in アクションで列挙できないものがあります。たとえば、_x や _y のようなムービークリッププロパティは列挙されません。外部クラスファイルでは、インスタンスメンバーとは異なり、静的メンバーは列挙されません。
for..in ステートメントは、反復処理されるオブジェクトのプロトタイプチェーン内のオブジェクトのプロパティに対して反復します。オブジェクトのプロパティが最初に列挙され、次にそのプロトタイプのプロパティが列挙され、さらにそのプロトタイプのプロトタイプのプロパティが列挙されます。以下同様です。逆インデックス順序でプロパティが反復処理されます。for..in ステートメントは、同じプロパティ名を繰り返して列挙しません。オブジェクト child にプロトタイプ parent が存在し、両方に prop プロパティがある場合、child の for..in ステートメントは、child の prop プロパティは列挙しますが parent の prop プロパティは無視します。
for..in ステートメントによって実行するステートメントブロックを囲む中括弧 ({}) は、実行するステートメントが 1 つしかない場合は不要です。
for..in ループをクラスファイル (外部 AS ファイル) 内に記述した場合、インスタンスメンバーをループで使用することはできませんが、静的メンバーはループで使用できます。ただし、クラスのインスタンスの FLA ファイル内に for..in ループを記述した場合、インスタンスメンバーは使用できますが、静的メンバーは使用できません。
対応バージョン : ActionScript 1.0、Flash Player 5
variableIterant:String - 反復子の役割を果たし、オブジェクトのプロパティまたは配列内のエレメントを参照する変数の名前。
次の例では、for..in を使用してオブジェクトのプロパティに対して反復処理を行います。
var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"};
for (var prop in myObject) {
trace("myObject."+prop+" = "+myObject[prop]);
}
//output
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]);
// output:
myArray[2] = three
myArray[1] = two
myArray[0] = one
次の例では、for..in で typeof 演算子を使用して特定のタイプの子に対して反復処理を行います。
for (var name in this) {
if (typeof (this[name]) == "movieclip") {
trace("I have a movie clip child named "+name);
}
}
メモ: ムービークリップが複数ある場合、その出力はそれらのクリップのインスタンス名で構成されます。
次の例では、ムービークリップの子を列挙し、それぞれを対応するタイムラインのフレーム 2 に進めます。RadioButtonGroup ムービークリップは親であり、_RedRadioButton_、_GreenRadioButton_、および _BlueRadioButton_ という 3 つの子を持っています。
for (var name in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); }
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001323.html