flash函数问题我在flash
我用到过以下这样的情况
如果影片剪辑的名称是"mc"+i(也就是剪辑名是动态变化的)
这个时候我们不能直接写 "mc"+i。_x等剪辑属性
我们需要用eval("mc"+i)。_x来表示
以上是我个人的理解,以下是flash官方的解释
eval()
可用性
Flash Player 5 或更高版本支持其完全功能。 在向 Flash Player 4 导出时,可以使用 eval() 函数,但必须使用斜杠记号,并且只能访问变量,不能访问属性或对象。
用法
eval(expression)
参数
expression 包含要获取的变量、属性、对象或影片剪辑的名称的字符串。
返回
一个值(对...全部
我用到过以下这样的情况
如果影片剪辑的名称是"mc"+i(也就是剪辑名是动态变化的)
这个时候我们不能直接写 "mc"+i。_x等剪辑属性
我们需要用eval("mc"+i)。_x来表示
以上是我个人的理解,以下是flash官方的解释
eval()
可用性
Flash Player 5 或更高版本支持其完全功能。
在向 Flash Player 4 导出时,可以使用 eval() 函数,但必须使用斜杠记号,并且只能访问变量,不能访问属性或对象。
用法
eval(expression)
参数
expression 包含要获取的变量、属性、对象或影片剪辑的名称的字符串。
返回
一个值(对对象或影片剪辑的引用)或 undefined。
说明
函数;按照名称访问变量、属性、对象或影片剪辑。如果 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");
示例
下面的示例使用 eval() 确定表达式 "piece" + x 的值。
因为该结果是一个变量名 piece3,所以 eval() 返回该变量的值并将其赋予 y:
piece3 = "dangerous";
x = 3;
y = eval("piece" + x);
trace(y);
// 输出:dangerous
。
收起