コメントの表示 | RSS フィード

eval 関数

eval(expression:Object) : Object
eval(expression:String) : Object

変数、プロパティ、オブジェクト、ムービークリップに名前でアクセスします。expression が変数またはプロパティである場合は、変数またはプロパティの値が返されます。expression がオブジェクトまたはムービークリップである場合は、オブジェクトまたはムービークリップへの参照が返されます。expression に指定したエレメントが見つからない場合は、undefined が返されます。

Flash 4 では、配列をシミュレートするために eval() 関数を使用していましたが、Flash 5 以降では Array クラスを使用する必要があります。

Flash 4 では、eval() を使って変数の値またはインスタンスの名前を動的に設定および取得することもできます。ただし、同じことは配列アクセス演算子 ([]) を使用しても可能です。

Flash 5 以降では、eval() を使用して変数の値またはインスタンス名を動的に設定および取得することはできません。これは、等式の左辺に eval() を使用できないためです。たとえば、次のようなコードは、

eval ("var" + i) = "first";

次のコードに置き換える必要があります。

this["var"+i] = "first"

または、次のようにもできます。

set ("var" + i, "first");

使用できるバージョン : Flash Player 5、ActionScript 1.0

パラメータ

expression:Object - 取得する変数、プロパティ、オブジェクト、またはムービークリップの名前。このパラメータには、String またはオブジェクトインスタンスへの直接参照のいずれかを指定できます (引用符 (" ") は使用しなくてもかまいません)。

戻り値

Object - オブジェクトまたはムービークリップへの参照、undefined、または値。

次の例では、eval() を使用して、動的に指定されるムービークリップのプロパティを設定します。この ActionScript は、square1_mc、square2_mc、square3_mc という 3 つのムービークリップの _rotation プロパティを設定します。

for (var i = 1; i <= 3; i++) {
 setProperty(eval("square"+i+"_mc"), _rotation, 5);
}

次の ActionScript を使用することもできます。

for (var i = 1; i <= 3; i++) {
 this["square"+i+"_mc"]._rotation = -5;
}

関連項目

Array, set variable ステートメント


Comments


Fumio Nonaka が Aug 5, 2006 の 7:15 AM に追加:
[誤]「Flash 5以降では、eval()を使用して変数の値またはインスタンス名
を動的に設定および取得することはできません。」

[正]「Flash Player 6以降では、eval()を使用して変数の値またはインスタ
ンス名を動的に設定および取得することはできません。」

参考:「左辺にある Eval() が正常動作しない」
http://www.adobe.com/jp/support/flash/ts/documents/fl0263.html

 

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

現在のページ: http://livedocs.adobe.com/flash/8_jp/main/00001726.html