Если вы хотите сохранить все элементы управления в массиве, это должно сделать это:
var inputs = new Array();
for (var i=0; i <11; i++) {
inputs.push(bouquet["dot_text" + i]);
}
В вашем примере вы говорите:
trace(["bouquet.dot_text" + i])
Что на самом деле говорит
"распечатать трассировку для одноэлементного массива, содержащего текст "quet.dot_text" + i
когда то, что вы хотите сказать, это
"распечатать трассировку для члена с именем" dot_text "+ 1 в объекте с именем букет.
Так что ваш пример, вероятно, должен прочитать примерно так:
for (var i=0; i <11; i++) {
trace(bouquet["dot_text" + i]);
}
[править]
ОП выразил недоумение по поводу использования "скобок для объединения имен переменных". Здесь на самом деле происходит довольно интересная особенность семейства языков JavaScript: объекты также являются ассоциативными массивами , поэтому, когда вы объявляете такой объект:
var obj = {member: "value"};
// now, obj.member == "value"
вы также можете обращаться к его переменным-членам, как если бы это был ассоциативный массив:
obj["member"]
Теперь, поскольку вы можете использовать строку, представляющую имя члена, в качестве ключа к массиву, очевидно, вы также можете объединить эту строку, поэтому:
var obj = {member1: "value1", member2: "value2"};
var value1 = obj["member" + 1];
var value2 = obj["member" + 2];
и это, конечно, то, что вы можете сделать с переменной цикла или что у вас есть.
В первоначальном примере OP неправильно то, что они не обращаются к массиву, они создают one:
// this accesses the "member" key in the assoc. array "obj"
var value = obj["member"];
// this creates a new 1-element array containing the string "member"
var array = ["member"];
Таким образом, скобки на самом деле не имеют ничего общего с конкатенацией имен переменных; в одном контексте они обозначают литерал массива, в другом - доступ к массиву. Надеюсь, это немного прояснит ситуацию? : -)