PDA

Просмотр полной версии : Динамическое задание массивов (Array, ArrayCollection)


oCa
13.03.2007, 10:25
Каким образом можно программно задавать названия массивов?
Если ручками, то

Bindable]
public var name1:ArrayCollection;

и потом к нему можно в функции обратиться. А если я не знаю сколько у меня будет таких массивов?
Чтобы можно было обратиться как this["name"+i].

etc
13.03.2007, 13:17
Изменить организацию, чтобы не было такого.

Nirth
13.03.2007, 15:37
Что за извраты с массивами сегодня,
Создайте коллекцию и храните в ней массивы


а this['name'] это не рекомендуемая практика даже в АС2

oCa
13.03.2007, 17:38
Я так понимаю речь идет об ArrayCollection в частности.
тогда вопрос каким образом заносить данные в него, если необходима структура вида:

radio=new ArrayCollection([{name:name1.getItemAt(0).name, mas: vote1},
{name:name1.getItemAt(1).name, mas: vote2},
{name:name1.getItemAt(2).name, mas: vote3}]);

из занесения знаю только

for (var j:int=1; j<=5; j++){
radio.addItemAt(name1.getItemAt(j).name, j);

но мне необходимо чтобы были поля 'name' и 'mas'.
Очень надо разобраться

Nirth
13.03.2007, 18:10
Вам нужно чтобы к одному и тому же объекту можно было обращатся по двум ключам?

oCa
13.03.2007, 20:18
именно так.

barby
13.03.2007, 20:38
Попробую приблизительно описать ход мыслей:
for (var i:int = 0; i<5; i++) {
var var1:String = name1.getItemAt(i).name;
var var2:String = 'vote' + i;
radio.addItem ({name: var1, mas: var2})
}
Не проверял :)

oCa
13.03.2007, 21:40
Огромное спасибо! Совет действительно прокатил.
Отлично всё работает, всё заносит и читает...
Только одно "но" - если в начале объявить все эти массивы

[Bindable]
public var vote1:ArrayCollection;

Без такого объявления в теле программы объекты, ссылающиеся на массивы voteX не могут получить свойства этих массивов.
Или у меня руки кривые... или одно из двух...

Nirth
13.03.2007, 22:33
если честно дело в руках

Насчет двух ключей, я бы посоветовал создать свою коллекцию(расширающую стандартные)

oCa
14.03.2007, 00:31
Насчет рук - может и так, но из всех комментариев (5!) конструктивный был только один от barby, за что ему(ей) огромное спасибо. Комментировать недостатки легче чем давать конкретные советы и предложения (в идеале с примерами). Наверное можно было обойтись одним примером, а не разводить метровую тему.
Надеюсь что не отбил охоту поделиться знаниями, т.к. вопрос остался открытым (только относительно flex-а, а не физиологии и строения органов :) )

etc
14.03.2007, 00:35
Вы не понимаете, что вам предлагают просто. Изменить организацию, а не ваять велосипед с пятью колесами и без руля.