PDA

Просмотр полной версии : Ахрененый глюк!


iliacmd
17.02.2011, 15:52
Меня просто переполняют эмоции!!

Может мне кто объяснит вчём фокус!!!

Примерно вот такой код

var arr:Array = new Array;
trace(user.id); // Самая значимая и интересная строчка, если её убрать то в последствии из массива нельзя извлечь значение свойства arr['id'+user.id]
arr['id'+user.id] = user;

В общем если есть трейс ид, то элемент можно извлечь из массива. Как можно решить проблему не используя трейс?

i.o.
17.02.2011, 16:00
приведите код для user.id.
Что это: свойство или поле класса?

TexHuK
17.02.2011, 16:00
arr['id'+user.id] = user; а это как понять?
я думал что элементы в массиве задаются числами..

gloomyBrain
17.02.2011, 16:03
Array - это динамический класс, поэтому можно создавать свойства "на лету", что и происходит в конструкциях вида arr["propName" + 123] = 321

ChuwY
17.02.2011, 16:04
arr['id'+user.id] = user; а это как понять?
я думал что элементы в массиве задаются числами..

Зависит от вида массива.
Класс Vector -- может быть только лишь индексированным массивом (ключи -- числа)
А класс Array - может быть как индексированным, так и ассоциативным. То есть иметь в роли ключей любые другие объекты.
Хотя, если нужна такая функциональность, то я пользуюсь Dictionary.

TexHuK
17.02.2011, 16:05
ChuwY, спасибо, буду знать :)

i.o.
17.02.2011, 16:07
Хотя, если нужна такая функциональность, то я пользуюсь Dictionary.
Обычного Object для таких целей вполне хавтает )

ChuwY
17.02.2011, 16:08
Ну, gloomyBrain вернее сказал.

iliacmd
17.02.2011, 16:33
самое фантастическое, что класс для user - это класс VO только со свойствами public.

Я использую pureMVC, обращаюсь к user через userProxy.user.id в UserProxy user публичное свойство содержащее объект класса User.

iNils
17.02.2011, 16:55
1. Название темы не раскрывает сути вопроса.
2. Код не оформлен тегами для кода.