PDA

Просмотр полной версии : Доступ к двухмерному массиву


AlexCooper
20.09.2008, 21:37
добавил
_root.dataObject= new Array();
_root.dataObject[1]= new Array();

всеравно undefindet=(((
-----

В _root.z имееть код:

_root.fc++;
fx=_root._xmouse;
fy=_root._xmouse;
_root.dataObject[Number(_root.fc)]['startX']=fx;
_root.dataObject[Number(_root.fc)]['startY']=fy;

А в клипе _root.z(второй кадр).z(третий кадр)

for (i = 1; i <= _root.fc; i++)
{
trace(_root.dataObject[i]['startX']);

for (j = 0; j <_root.dataObject[i].length; j++)
trace("");//_root.dataObject[[i],[j]]);
}

трасировака показывает

163
undefined
undefined
undefined
undefined
undefined


не могу понять в чём дело, мне хотя б получить доступ с остальным цыклом разберусь сам. Может кто-то помочь в этом вопросе? AS2.0 (v8 proffesional)

Obi
20.09.2008, 22:32
я конечно почти ничего непонял из вашего поста, но предположу, что нужно писать
_root.dataObject[i][j];
а не
_root.dataObject[[i],[j]];

AlexCooper
21.09.2008, 00:06
for (j = 0; j <_root.dataObject[i].length; j++)
trace("");//_root.dataObject[[i],[j]]);
этот цыкл можно пропустить так как внимательно присмотреться он безполезный.

Обясню по по коду.
При нажатии мышки начинаеться создание объекта. При этом отслежуеться начальные и конечные координаты мишки. Эти данные я хочу вписать в массив.
Хочу что б двухмерный массив содержал
dataObject[i]['startX'];
......
dataObject[i]['color'];

где "i" ID объекта а ['startX'].....['color'] свойства объекта

Wolsh
21.09.2008, 00:46
Просто храните в массиве dataObject объекты, в каждой ячейке по Объекту, а у этих объектов уже пусть будут свойства 'startX', 'color' и т.д.
Об этом Ваш код. И что у Вас не получилось, неясно? Вы приводите результат трейса и говорите "как это исправить", в следующем посте говорите "не надо смотреть этот трейс"... Так проблема-то в чем? По итератору j Вы не получите элементы массива, которым дали строчные идентификаторы. Т.е. свойство 'startX' не лежит в ячейке 1, к примеру. Оно сохранено как свойство с именем startX массива, лежащего в нумерованной (первой?) ячейке массива dataObject. Поэтому и было выдано в трейсе 163. Это был правильный доступ. Но еще раз говорю, проще хранить простые объекты с нужными свойствами, чем массивы, жующие больше памяти.