PDA

Просмотр полной версии : Создать массив с именем, взятым из массива


Diogen
19.12.2011, 23:34
Есть массив "А" и в нём по порядочку хранятся имена для множества других массивов, которые я собираюсь содержать по порядку, в массиве "В". Вопрос такой: как это всё оформить в коде? Самый неясный вопрос - как в выражении var b1:Array = new Array(); динамически задавать b1 ?

dark256
20.12.2011, 01:58
Малопонятный вопрос.
Вы себе хотиет иметь индексный массив или ассоциативный?

В первом случае:
arr[0]=первый эл_т
arr[1]=второй эл_т
...
arr[X]=иксный эл-т


Во втором случае это так:

arr["any_my_item"] = something;
arr["another_my_ridicuolus_item"] = some_unbelivabel;
....
arr["my_mind_overflow"] = note_enough_memory;

Котяра
20.12.2011, 02:09
var b1:Array = new Array();
...
b1.push([1,1,1,1,1,1,1,1,1])
...

dark256
20.12.2011, 02:35
push - это от лукавого и Мука.
Гурский рекомендует именно arr[arr.length] и я это уже видел в ас3 как оно не так как мы думаем :)

Котяра
20.12.2011, 02:59
Т.к. массивы неплотные, то я предпочитаю push)
Чтобы не ошибиться с установкой неверных значений индексов.

udaaff
20.12.2011, 03:14
dark256, а чем push() плох?

dark256
20.12.2011, 05:41
Я знаю что это рекомендованно и здоровро, но после полутора дней [censored.mucho.censored] я вернулся к вышеприведенному и оно заработало.
Я не знаю что, как, и .... ну и вообще я начинающий, но пуш глючил.

mooncar
20.12.2011, 12:10
Автор, может быть вам просто нужна эмуляция двумерного массива?
Например:
var a:Array = new Array();

for (i = 0; i < 10; i++)
{
a[i] = new Array();
}

Получаем 10 элементов массива a - тоже массивы.
То есть никаких имен для массивов в a не хранится, массив a уже содержит в себе другие массивы, к элементам которых обращаемся так:
a[i][j] = ....

Diogen
21.12.2011, 15:36
Суть в том, что мне нужно дофига массивов, к каждому из которых я смогу обратиться по имени. В каждом из них будет 4 значения, типы данных повторяются. по два буляна и два стринга на каждый. Естественно, все эти я хочу впихнуть в один обобщающий для удобства. Было бы реально удобно динамически задать для них имена. Есть конечно обходной путь с привязкой к нумерации, но прийдётся на каждой процедуре проводить поиск по имени чтобы найти его личный номер. Несколько громоздко выйдет.
Я не опытен весьма, может просто боюсь усложнений))

Diogen
21.12.2011, 15:47
Привязка к имени нужна, потому что за каждым из них закреплен объектик с соотв-щим instanceName. их полторы-две сотни в сумме..

И кстати вот сокроментальный вопрос: где Флэш хранит атрибуты стандартных компонентов? Я плясал от того, что при переходе из одного фрейма в другой, текущие значения пропадают в небытие. Решил на выгрузке каждого компонента впихнуть функцию записи данных в массив и соотв-но при загрузке - чтение из массива и расстановка значений на места. Мне эта мысль показалась простой и разумной:
Во-первых на многих компонентах необходимы индивидуальные листенеры, которые принудительно задают значения на другие компоненты.
Во-вторых, я так и не разобрался, куда же Флэш помещает всю компонентскую фигню, я бы их глобалами заделал может быть и всё)

Добавлено через 33 часа 35 минут
Всё ясно, извините за глупый вопрос)