Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Доступ к двухмерному массиву (http://www.flasher.ru/forum/showthread.php?t=116118)

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. Это был правильный доступ. Но еще раз говорю, проще хранить простые объекты с нужными свойствами, чем массивы, жующие больше памяти.


Часовой пояс GMT +4, время: 16:35.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.