Форум 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=138053)

oam333 29.03.2010 15:48

В чем ошибка в двумерном динамическом массиве?
 
Код AS3:

var tile_list = new Array(new Array(4));
tile_list[0][0] = 0;
tile_list[0][1] = 1;
tile_list[0][2] = 2;
tile_list[0][3] = 3;
tile_list[1][0] = 4;
tile_list[1][1] = 5;
tile_list[1][2] = 6;
tile_list[1][3] = 7;
trace(tile_list[1]);

выдает "undefined".
Код AS3:

trace(tile_list);

выдает 0,1,2,3

Вопрос:
почему "undefined", тогда как должен выдать 4,5,6,7
и почему при trace(tile_list) выдает только 0,1,2,3, а не 0,1,2,3,4,5,6,7 ???

udaaff 29.03.2010 15:54

Код:

var tile_list = [ [], [] ];

oam333 29.03.2010 16:04

Цитата:

Сообщение от udaaff (Сообщение 896520)
Код:

var tile_list = [ [], [] ];

а если мне нужно много значений первого измерения? т.е. динамический массив нужен. Как тогда его описать? не указывать же нечто, похожее на
Код AS3:

var tile_list= [ [], [], [], [], [], [], [], [], и т.д. ];


random13 29.03.2010 16:09

во флеше помойму массив всегда динамический

udaaff 29.03.2010 16:10

Цитата:

Сообщение от oam333 (Сообщение 896527)
а если мне нужно много значений первого измерения? т.е. динамический массив нужен.

Создавайте вложенный массив в момент присваивания значит.

oam333 29.03.2010 16:18

Цитата:

Сообщение от udaaff (Сообщение 896532)
Создавайте вложенный массив в момент присваивания значит.

эммм.... не совсем сообразил...
ладно, давайте попробуем зайти с другой стороны..
Есть объект
Код AS3:

var tile_list:Object = new Object();

у этого объекта есть 4 параметра:
Код AS3:

tile_list.tx
tile_list.ty
tile_list.x
tile_list.y

Можно ли сделать массив из этих объектов?
т.е. чтобы можно было к нему обращаться, например, так
Код AS3:

tile_list[i].tx


udaaff 29.03.2010 16:22

Записывайте ссылку на ваш объект в массив и обращайтесь на здоровье...

oam333 29.03.2010 16:34

Цитата:

Сообщение от udaaff (Сообщение 896542)
Записывайте ссылку на ваш объект в массив и обращайтесь на здоровье...

Проблема в том, что флеш я только начал изучать, поэтому не совсем понял вашу фразу, точнее понял, но не знаю как это реализовать.
Ладно, сам догадаюсь как-нибудь..

Psycho Tiger 29.03.2010 18:35

udaaff имеет ввиду
Код AS3:

var tile_list:Array=[];
tile_list[0]=[];
tile_list[0][0] = 0;
tile_list[0][1] = 1;
tile_list[0][2] = 2;
tile_list[0][3] = 3;
tile_list[1]=[];
tile_list[1][0] = 4;
tile_list[1][1] = 5;
tile_list[1][2] = 6;
tile_list[1][3] = 7;
trace(tile_list[1]);


oam333 29.03.2010 22:58

Спасибо, Psycho Tiger.
Я, правда, сделал немного по-другому:
Код AS3:

var tile_list: Array = [];
 
i_tile - некий счетчик
 
tile_list[i_tile] = new Object();
tile_list[i_tile].t_tx = tx;
tile_list[i_tile].t_ty = ty;
и т.д.



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

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