如何在Actionscript 2中使用变量变量名?

时间:2011-02-19 02:21:40

标签: flash variables actionscript-2

我正在循环一个名为 shopData 的数组,需要使用该数组中的值来创建新变量。 在循环中,我正在尝试这样的事情:

shop_(shopData[i].shopName).keyword = shopData[i].keyword;

但我在()中的部分遇到问题,似乎找不到合适的语法。

假设 shopData [i] .shopName =“foo”我需要创建一个名为的变量:

shop_foo.keyword = value

shopData [i] .shopName =“orange”

shop_orange.keyword = value

AS2是否可以实现这一目标?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。您必须创建变量名称的字符串表示形式并使用[]括号:

this["shop_" + shopData[i].shopName].keyword = shopData[i].keyword;

所有shop_...变量必须是类实例的成员变量(在上例中它们是this的成员),或者您必须创建一个简单的Object容器:

var shops:Object = {};
shops["shop_" + shopData[i].shopName].keyword = shopData[i].keyword;

只需编写["shop_" + shopData[i].shopName]来访问本地变量就不会编译。