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

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

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

Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
Attention xml и ignoreWhite

доброго времени суток. имеется файл хмл.
Код:
<photos>
	<photo>
		<pathToLarge>i2/bhambi.jpg</pathToLarge>
		<pathToSmall>i2/bhambi_sm.jpg</pathToSmall>
		<client>Bhambi</client>
		<URL>http://bhambi.com/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>php</item>
			<item>.NET</item>
		</technologies>
		<readMoreLink>link1</readMoreLink>
	</photo>
...
</photos>
и флеш. когда отсутствует фраза dataXML.ignoreWhite = true; загрузка картинок происходит, но длина массива не считается (выдает 0). когда эта фраза есть, то длина массива считается, но не происходит загрузка картинок (выдает undefined).
Код:
var url:String = "materials2.xml";
dataXML = new XML();
dataXML.ignoreWhite = true;
dataXML.onLoad = loadData;
dataXML.load(url);

function loadData(){
	var photos = dataXML.firstChild;
	max = photos.childNodes.length;	
	trace (max);

	var temp = 1;
	_root.allWorksLinks = this.childNodes[1].childNodes[7].firstChild.toString();
	
	for(var i=0;i<9;i++){
		var temp1 = 1;
		var index = 0;
		_root.lagePics[i] = this.childNodes[1].childNodes[temp].childNodes[1].firstChild.toString();
		_root.smallPics[i] = this.childNodes[1].childNodes[temp].childNodes[3].firstChild.toString();
		_root.client[i] = this.childNodes[1].childNodes[temp].childNodes[5].firstChild.toString();
		_root.path[i] = this.childNodes[1].childNodes[temp].childNodes[7].firstChild.toString();
		_root.readMoreLinks[i] = this.childNodes[1].childNodes[temp].childNodes[11].firstChild.toString();
		while(this.childNodes[1].childNodes[temp].childNodes[9].childNodes[temp1].firstChild.toString() != undefined){
			if(this.childNodes[1].childNodes[temp].childNodes[9].childNodes[temp1].firstChild.toString() != undefined){
				...
			temp1 += 2;
			index += 1;
		}
		temp += 2;
	}
	_root.loadFirst();
}
что здесь не так

Старый 16.11.2008, 21:15
Avtorpc вне форума Посмотреть профиль Отправить личное сообщение для Avtorpc Найти все сообщения от Avtorpc
  № 2  
Ответить с цитированием
Avtorpc

Регистрация: Oct 2008
Сообщений: 30
При анализе скрипта не совсем понял ссылки на root(типа _root.allWorksLinks=...) Это что за объекты? И если можно распишете порядок разборки файла .xml, так будет проще найти ошибку.

Старый 16.11.2008, 23:54
zzz_dmg вне форума Посмотреть профиль Отправить личное сообщение для zzz_dmg Найти все сообщения от zzz_dmg
  № 3  
Ответить с цитированием
zzz_dmg

Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
вот весь хмл
Код:
<?xml version="1.0" encoding="iso-8859-1"?>
<photos>
	<photo>
		<pathToLarge>i2/bhambi.jpg</pathToLarge>
		<pathToSmall>i2/bhambi_sm.jpg</pathToSmall>
		<client>Bhambi</client>
		<URL>http://bhambi.com/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>php</item>
			<item>.NET</item>
		</technologies>
		<readMoreLink>link1</readMoreLink>
	</photo>
	<photo>
		<pathToLarge>i2/denver.jpg</pathToLarge>
		<pathToSmall>i2/denver_sm.jpg</pathToSmall>
		<client>Denver</client>
		<URL>http://denvervip.com/</URL>
		<technologies>
			<item>html</item>
			<item>css</item>
			<item>flash</item>
		</technologies>
		<readMoreLink>link2</readMoreLink>
	</photo>
	<photo>
		<pathToLarge>i2/efrat.jpg</pathToLarge>
		<pathToSmall>i2/efrat_sm.jpg</pathToSmall>
		<client>Efrat</client>
		<URL>http://efrat-k.com/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>ASP.NET</item>
		</technologies>
		<readMoreLink>link3</readMoreLink>
	</photo>
	<photo>
		<pathToLarge>i2/gipo.jpg</pathToLarge>
		<pathToSmall>i2/gipo_sm.jpg</pathToSmall>
		<client>Gipo</client>
		<URL>http://gipo.by/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>ASP.NET</item>
		</technologies>
		<readMoreLink>link4</readMoreLink>
	</photo>
	<photo>
		<pathToLarge>i2/neatnails.jpg</pathToLarge>
		<pathToSmall>i2/neatnails_sm.jpg</pathToSmall>
		<client>Neatnails</client>
		<URL>http://neatnails.com/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>ASP.NET</item>
		</technologies>
		<readMoreLink>link5</readMoreLink>
	</photo>
	<photo>
		<pathToLarge>i2/ruflex.jpg</pathToLarge>
		<pathToSmall>i2/ruflex_sm.jpg</pathToSmall>
		<client>Ruflex</client>
		<URL>http://ruflex.com/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>ASP.NET</item>
		</technologies>
		<readMoreLink>link6</readMoreLink>
	</photo>
	
	<photo>
		<pathToLarge>i2/rusreg.jpg</pathToLarge>
		<pathToSmall>i2/rusreg_sm.jpg</pathToSmall>
		<client>Rusreg</client>
		<URL>http://rusreg.ru/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>ASP.NET</item>
		</technologies>
		<readMoreLink>link7</readMoreLink>
	</photo>
	<photo>
		<pathToLarge>i2/wingshooting.jpg</pathToLarge>
		<pathToSmall>i2/wingshooting_sm.jpg</pathToSmall>
		<client>Wingshooting</client>
		<URL>http://wingshooting.com/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>ASP.NET</item>
		</technologies>
		<readMoreLink>link8</readMoreLink>
	</photo>
	<photo>
		<pathToLarge>i2/yakova.jpg</pathToLarge>
		<pathToSmall>i2/yakova_sm.jpg</pathToSmall>
		<client>Yakova</client>
		<URL>http://yakova.com/</URL>
		<technologies>
			<item>html</item>
			<item>flash</item>
			<item>ASP.NET</item>
		</technologies>
		<readMoreLink>link9</readMoreLink>
	</photo>
	
	<allWorksLink>http://google.com/</allWorksLink>
</photos>

Старый 17.11.2008, 00:55
INK• вне форума Посмотреть профиль Отправить личное сообщение для INK• Посетить домашнюю страницу INK• Найти все сообщения от INK•
  № 4  
Ответить с цитированием
INK•
 
Аватар для INK•

Регистрация: Nov 2001
Сообщений: 105
Отправить сообщение для INK• с помощью ICQ
если не вдаватся в подробности:
без ignoreWhite у тебя firstChild - это перенос каретки, который ясен пень никакой длинны не имеет. Это баг еще 5го плеера, я чуть сума не сошел, в свое время, пока не понял откуда там ноги растут.

Так вот. не грузятся видно потому что там не в то место ты смотришь...

вместо хачить твой код, предлагаю воспользоватся моим.
смотри
http://ruslanshestopal.com/docs/rss_...ash_reader.php

код будет всего лишь такой
Код AS1/AS2:
var url:String = "materials2.xml";
import XMI;
var my_xml:XMI = new XMI();
my_xml.addListener(this);
my_xml.load(url);
//
this.onXMLLoad = function(xml_obj:Object, xmi_instance:XMI) {
 
	var items_length:Number = xml_obj.photo.length;
	trace("my_xml loaded:"+items_length);
	for (var i = 0; i<items_length; i++) {
		var big_img = xml_obj.photo[i].pathToLarge;
		var small_img = xml_obj.photo[i].pathToSmall;
		var tech_arr = xml_obj.photo[i].technologies.item;
		trace("big image:"+big_img+" small image:"+small_img);
		trace("Technologies ->>"+tech_arr);
	}
};
this.onLoadFailure = function() {
	trace("fail to load");
};

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS1/AS2:
... = this.childNodes[1]...
А где Вы видели у документа XML еще какой-то нод, кроме нулевого? Ну не считая комментариев и прочих служебных, которые мы не обрабатываем?
__________________
Reality.getBounds(this);

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

Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
все равно. если записываю так, но присутствует dataXML.ignoreWhite = true; не находит путь к форо и сама длина undefined. а если эту строчку удаляю, то длин а рана 21 (вместо положенного 10)
Код:
var len = this.childNodes[1].childNodes.length;
	trace (len);

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вы не поняли. Нет никакого this.childNodes[1] и быть не может, по крайней мере если ignoreWhite = true. (А оно должно быть тру обязательно)
У документа есть только ОДИН нод - this.childNodes[0] он же this.firstChild.
Вы просто не понимаете, что this здесь - это сам загруженный XML, весь. this - это не <photos>. И у this есть только один нулевой нод - <photos>, больше нет в принципе. Т.е. childNodes[1] нет вообще, а Вы весь код к нему обращаетесь.
Откуда берется childNodes[1] при отключенном игнорировании - Вам INK• объяснил.
Пробел или перенос становится нулевым нодом, а <photos> - первым. Только не пытайтесь это использовать)))))) С отключенным игнорированием Вы никогда корректную разборку не сделаете, и не надо. Поэтому пожалуйста, перестаньте играть со строчкой во вкл/выкл и сконцентрируйтесь на том, что Вы подразумевали под this.
Переносы становятся нодами - отсюда такая длина.
__________________
Reality.getBounds(this);

Старый 17.11.2008, 18:33
INK• вне форума Посмотреть профиль Отправить личное сообщение для INK• Посетить домашнюю страницу INK• Найти все сообщения от INK•
  № 8  
Ответить с цитированием
INK•
 
Аватар для INK•

Регистрация: Nov 2001
Сообщений: 105
Отправить сообщение для INK• с помощью ICQ
Цитата:
Сообщение от zzz_dmg Посмотреть сообщение
а если эту строчку удаляю, то длин а рана 21 (вместо положенного 10)
ну раз ты до этого места уже дошел.
то вот в этом то и кроится разгадка (n-1)/2 !
тоесть явно что то лишнее. Так вот это лишнее и есть переносы.

было [0] стало [1]
Тоесть сместилось из за того что переносы тоже учитываются.

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

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

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


 


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


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