eval 関数

eval(expression: Object) : Objecteval(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");

使用できるバージョン : ActionScript 1.0、Flash Lite 1.0 - すべての機能を使用するには Flash Player 5 以降が必要です。Flash Player 4 に書き出す場合は eval() 関数を使用できますが、スラッシュ表記を使用する必要があります。また、変数だけにアクセス可能で、プロパティやオブジェクトにはアクセスできません。

パラメータ

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 ステートメント