Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 02.06.2004, 19:34
udodddd вне форума Посмотреть профиль Отправить личное сообщение для udodddd Посетить домашнюю страницу udodddd Найти все сообщения от udodddd
  № 1  
udodddd

Регистрация: Nov 2003
Адрес: Россия, Москва
Сообщений: 27
По умолчанию Вложенные массивы.

Как создать в одном массиве другой.
Как обратиться к этому вложенному массиву.
И еще.
Я тут сначала в поиске посотрел, нашел сообщение, где говориться, что во флеше нет масивов, а то что есть, это так, фигня (это вольное изложение моим языком).
Как это понимать?

Старый 02.06.2004, 20:05
udodddd вне форума Посмотреть профиль Отправить личное сообщение для udodddd Посетить домашнюю страницу udodddd Найти все сообщения от udodddd
  № 2  
udodddd

Регистрация: Nov 2003
Адрес: Россия, Москва
Сообщений: 27
Ну как обращаться, вроде нашел.
Например:
dod = new Array("dod1","dod2","dod3");
dod[1]=new Array("koko1","koko2","koko3","koko3");
trace(dod[1].length);
trace(dod[1][2]);

Это единственный способ, есть ли еще какие варианты создания, обращения к вложенному массиву?

Старый 02.06.2004, 20:21
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 3  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
http://www.flasher.ru/forum/showthre...threadid=58350
в конце страницы

Старый 02.06.2004, 20:27
udodddd вне форума Посмотреть профиль Отправить личное сообщение для udodddd Посетить домашнюю страницу udodddd Найти все сообщения от udodddd
  № 4  
udodddd

Регистрация: Nov 2003
Адрес: Россия, Москва
Сообщений: 27
Спасибо, все понял.

Старый 02.06.2004, 21:12
udodddd вне форума Посмотреть профиль Отправить личное сообщение для udodddd Посетить домашнюю страницу udodddd Найти все сообщения от udodddd
  № 5  
udodddd

Регистрация: Nov 2003
Адрес: Россия, Москва
Сообщений: 27
Черт. Все равно вопросы остались.
Я лучше конкретно изложу, что мне нужно...
Значит так, сначала создается один массив:

if (success == true) {
for (i=0; i<links.firstChild.childNodes.length; i++) {
class[i] = links.firstChild.childNodes[i].attributes.inf;

потом всякая вигня с ним. Там копируются кнопки и к ним присваиваются разные действия.
А вот затем, мне нужно в каждом из эллементов этого массива сделать еще один массив и присвоить туда значения из xml файла.
То, что я делал нифига не работает. А как сделать правильно, незнаю.

for (z=0; z<links.firstChild.childNodes[i].childNodes.length; z++) {
class[[i][z]] = links.firstChild.childNodes[i].childNodesхz].childNodes[0].childNodes;
trace(class[[i][z]]);
}
}
}
Когда этот скрипт выполняется, выводится значение только первого массива.
Все остальные - undefined.

Вот на всякий случай кусок xml, откуда все это берется:
<links_xml>
<class inf="класс1">
<link>
<link>ссылка1</link>
<info>инфа1</info>
</link>
<link>
<link>ссылка2</link>
<info>инфа2</info>
</link>
...

...
</class>
<class inf="класс2">
...

...
</class>
</links_xml>

Старый 03.06.2004, 01:36
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 6  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Не, этак ты далеко не уедешь... Правильно class[i][z] = значение. К сколь угодно вложенному массиву можно обратиться именно таким образом

myArray = [ [ [ [0, 1], [2, 3] ], [7, 7] ] ]

myArray[0][0][1][0] // значение 2

Т.е. по степени вложенности, скобки друг за другом.
Главное - не запутаться.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 03.06.2004, 15:37
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 7  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
Создаёшь массив, каждым из элементов которого является также массив:
Код:
class_array = new Array();
for (var i=0; i<10; i++){
	class_array[i]=new Array();
	}
а потом заполняешь каждый из этих массивов

Код:
for (var i=0; i<10; i++){
	for (var j=0; j<10; j++){
		class_array[i].push(j);
		}
	}

вместо
class_array[i].push(j);
можно написать
class_array[i][j]=j;

вроде всё..

Старый 03.06.2004, 15:41
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 8  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
нет, не всё.
если пользовать push(), то первый цикл не нужен...
вроде так

Старый 03.06.2004, 18:05
udodddd вне форума Посмотреть профиль Отправить личное сообщение для udodddd Посетить домашнюю страницу udodddd Найти все сообщения от udodddd
  № 9  
udodddd

Регистрация: Nov 2003
Адрес: Россия, Москва
Сообщений: 27
Выглядит понятно.
И просто.
И даже появляются мысли о том, почему же я сам не смог это придумать. Я их гоню прочь.
Благодарю всех за советы.
Спасибо.
Пошел пробовать.

Создать новую тему   Часовой пояс GMT +4, время: 23:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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