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

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

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

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
По умолчанию Сортировка XML

День добрый, ситуация такова, есть список фильмов предствленный в виде XML (генерится пхп-скриптом и отдается флешу). Его структура такова:
папка -
- фильм
- фильм
папка с фильмами -
- фильм
- фильм
папка с фильмами -
папка с фильмами -
- фильм
- фильм
В общем пхп бегает по всем папкам что етсь и если находит там файлы нужного формата то записывает их. Степень вложенности может быть любой (используется рекурсия). Вопрос в том как сделать так что бы флеш отображал сначала только фильмы, а потом уже папки с другими фильмами (дабы несколько упорядочить это дело).
Решил сначала пробегаться по хмлюе и проверять, если фильм — то добавляем, если нет то пропускам, когда фильмы кончаются опять пробегаюсь по хмл и на этот раз проверяю папки, если нод - папка, запускаю функцию еще раз, если не то пропускаю.
НО проблема в том что папки второй вложенности и ниже не отображаются, почему то. Вот что я получаю в трейсе:
Цитата:
Films1 // большая папка с фильмами
Films1/In English // одна вложенная папка все ок
end of Films1/In English // вот конец этой папки
Films1/Multiki // еще одна вложенная папка с фильмами
end of Films1/Multiki // ее конец
Films1/New // и вот еще одна папка, но в ней есть еще вложенная папка
end of Films1/New/A_Beautiful_Mind // но мы видим только ее конец
end of Films1/New // .....
Films1/Video pricols
end of Films1/Video pricols/Animals
end of Films1/Video pricols/Beavis and Buthead
end of Films1/Video pricols/Crash
..........
Сортирую так:
Код AS1/AS2:
///////////////-------------- Обходим ХМЛ ---------------////////////////
function sort(node) 
{
	var total_i:Number = node.length;
	for(var i:Number = 0; i < total_i; i++)         // первый цикл - ищу фильмы
	{
		var nodes = node[i].childNodes;
		if (typeof (nodes[0]) == "undefined")  // если нету вложенных файлов то считаю что это фильм
		{
			//trace(node[i].attributes.film);
			addElement(node[i].attributes.film, node[i].attributes.link, 12, 0x444444);
		}
	}
	for(var i:Number = 0; i < total_i; i++)       // второй цикл, обхожу папки
	{
             var nodes = node[i].childNodes;		// надо так, а не как ниже закоменчено
if (typeof (nodes[0]) != "undefined") // елси етсь потомки то это папка
		{
			// var nodes = node[i].childNodes;
			addFolder(node[i].attributes.name, 16, 0x333333);
			trace(node[i].attributes.name);
			sort(nodes);                 // если папка то запускаю эту функцию в ней
		}
		if (node[i].attributes.name != undefined){ trace("end of " + node[i].attributes.name); }   // тут мы отслеживаем конец какой то папки
	}
}
З.Ы. проблема решена, описка найдена, исправил код на будущее..


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

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

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


 


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


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