Как использовать имена переменных переменных в Actionscript 2? - PullRequest
0 голосов
/ 19 февраля 2011

Я перебираю массив с именем 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 Ответ

2 голосов
/ 19 февраля 2011

Да, это возможно. Вы должны создать строковое представление имени переменной и использовать [] скобки:

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] для доступа к локальной переменной не скомпилируется.

...