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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.09.2008, 14:31
bulya123 вне форума Посмотреть профиль Отправить личное сообщение для bulya123 Найти все сообщения от bulya123
  № 1  
Ответить с цитированием
bulya123
 
Аватар для bulya123

Регистрация: Aug 2008
Адрес: Moscow
Сообщений: 31
По умолчанию Проблема с двумерным массивом

Добрый день, совсем запутался, возникла проблема с двумерным массивом
Код:
var filename_list = new Array();
var filepath:String = "portfolio/spec/";

var content_xml = new XML();
content_xml.ignoreWhite = true;
content_xml.onLoad = function() {
	var node:Array = this.firstChild.childNodes;
	for (var i = 0; i<node.length; i++) {
		var nodes:Array = this.firstChild.childNodes[i].childNodes;
		
		for (var j = 0; j<nodes.length; j++) {
			
                        filename_list[i, j] = nodes[j].attributes.filename;
			trace(filename_list[i, j])//здесь выводит все нормально

		}
	}
	trace(filename_list)//а здесь выводить только последние значения
};
content_xml.load("specproject.xml");
Структура XML приблизительно такая:
Код:
<?xml version="1.0"  encoding="windows-1251"?>
<portfolio>
<items label="TORQUE">
<item filename="port01.png" />
<item filename="port02.png" />
<item filename="port03.png" />
</items>
<items label="GRAND PRIX">
<item filename="port04.png" />
<item filename="port05.png" />
<item filename="port06.png" />
</items>
<items label="ЕВРОФАРМ">
<item filename="port07.png" />
<item filename="port08.png" />
<item filename="port09.png" />
<item filename="port09.png" />
</items>
</portfolio>
Не могу понять в чем дело
Буду благодарен за помощь

Старый 25.09.2008, 14:46
Doctor76 вне форума Посмотреть профиль Отправить личное сообщение для Doctor76 Найти все сообщения от Doctor76
  № 2  
Ответить с цитированием
Doctor76
 
Аватар для Doctor76

Регистрация: Nov 2007
Сообщений: 183
Я вместо этой строки
Код:
filename_list[i, j] = nodes[j].attributes.filename;
Написал так:
Код:
filename_list.push(nodes[j].attributes.filename)
Работает вроде как..

Старый 25.09.2008, 15:02
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код:
filename_list[i][j] = nodes[j].attributes.filename;
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 30.09.2008, 12:17
bulya123 вне форума Посмотреть профиль Отправить личное сообщение для bulya123 Найти все сообщения от bulya123
  № 4  
Ответить с цитированием
bulya123
 
Аватар для bulya123

Регистрация: Aug 2008
Адрес: Moscow
Сообщений: 31
Цитата:
Сообщение от dimarik Посмотреть сообщение
Код:
filename_list[i][j] = nodes[j].attributes.filename;
Спасибо, то, что нужно, просто синтаксис перепутал

Цитата:
Сообщение от Doctor76 Посмотреть сообщение
Я вместо этой строки
Код:
filename_list[i, j] = nodes[j].attributes.filename;
Написал так:
Код:
filename_list.push(nodes[j].attributes.filename)
Работает вроде как..
Нужен именно двумерный массив, а метод push делает одномерный прикрепляя в конец массива


Последний раз редактировалось iNils; 30.09.2008 в 12:34.
Старый 30.09.2008, 12:40
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
bulya123, мультипостинг у нас запрещен, пользуйтесь кнопкой "мультицитата" и "изменить"
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 14.11.2008, 15:06
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 6  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
А если мне надо так же вывести "nodes.length", то что делать?..а то берется только последнее значение((

Код AS1/AS2:
var filename_list = new Array();
var filepath:String = "";
 
var content_xml = new XML();
content_xml.ignoreWhite = true;
content_xml.onLoad = function() 
{
	var node:Array = this.firstChild.childNodes;
	for (var i = 0; i<node.length; i++) 
	{
		filename_list[i] = new Array();
		var nodes:Array = this.firstChild.childNodes[i].childNodes;
 
		for (var j = 0; j<nodes.length; j++) 
		{
			filename_list[i][j] = nodes[j].attributes.filename;
		}
		trace("то как должно быть - " + nodes.length)  // все ок  =3, =4, =4
	}
	trace("то что получаем(( - " + nodes.length)   // последнее значение = 4
};
 
content_xml.load("specproject.xml");


Последний раз редактировалось nOobCrafter; 14.11.2008 в 16:53.
Старый 14.11.2008, 15:59
MrXoT вне форума Посмотреть профиль Отправить личное сообщение для MrXoT Найти все сообщения от MrXoT
  № 7  
Ответить с цитированием
MrXoT

Регистрация: Apr 2008
Сообщений: 71
Код:
var filename_list = new Array();
var filepath:String = "portfolio/spec/";

var content_xml = new XML();
content_xml.ignoreWhite = true;
content_xml.onLoad = function(success:Boolean) {
    if(success){
	var node:Array = this.firstChild.childNodes;
	for (var i = 0; i<node.length; i++) {
		var nodes:Array = this.firstChild.childNodes[i].childNodes;
                var nodes_length:Number = this.firstChild.childNodes[i].childNodes.length;
		filename_list[i] = new Object();
                filename_list[i]._length=nodes_length;
		for (var j = 0; j<nodes.length; j++) {

			var filename:String = nodes[j].attributes.filename;
                        filename_list[i][j] = new Object();
                        filename_list[i][j]._filename=filename;

		}
	}
	trace(filename_list[1][0]._filename)
    }
};
content_xml.load("specproject.xml");


Последний раз редактировалось MrXoT; 14.11.2008 в 16:01.
Старый 14.11.2008, 16:54
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 8  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
2 MrXoT Ммм и что это нам дало?... Мне надо кол-во елементов. Немного подправил верхний пост, что бы было понятно что именно мне надо.

Старый 14.11.2008, 17:36
MrXoT вне форума Посмотреть профиль Отправить личное сообщение для MrXoT Найти все сообщения от MrXoT
  № 9  
Ответить с цитированием
MrXoT

Регистрация: Apr 2008
Сообщений: 71
все очень просто...
Задаем массив как обьект...
и к нему можно легко общаться...
очень удобно если 1 поле в хмл имеет много параметров...
например если человек добавит новое поле title="" то твой вариант не получится
а мой просто при добавлении поля filename_list[i][j]._title = title;
и все....

Старый 14.11.2008, 17:53
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 10  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
Ммм у нас небольшое недопонимаение.
Мне НЕ надо узнавать что и где находится, с этим у меня все ок. Мне надо узнать КОЛ-ВО элементов ВТОРОГО массива, для каждого элемента первого отдельно. А у меня выводит только кол-во елементов последнего массива (i = 2). (в коде старался это отразить.)

З.Ы.
Цитата:
например если человек добавит новое поле title="" то твой вариант не получится
я использую 3 параметра и все у меня корректно отображается.(могу хоть 10, не в том суть)
Код:
<?xml version="1.0" encoding="utf-8" ?>
<header>
<items razdel="Безопасность">
		<item title="1.1" 
		        description="Сегодня запущен сайт в тестовом режиме."
		        image="thumbnails/Cotton_Buds.jpg" />


Последний раз редактировалось nOobCrafter; 14.11.2008 в 17:56.
Создать новую тему Ответ Часовой пояс GMT +4, время: 21:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
двумерный , массив
Опции темы
Опции просмотра

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

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


 


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


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