Показать сообщение отдельно
Старый 06.11.2002, 17:00
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 7  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
В коде три ошибки

первая:

Код:
_root.ard_xml.onLoad = sucs();
по логике, ard_xml должен получить ссылку на функцию которая будет обработчиком события загрузки ХМЛ-а

это нужно делать вот так

Код:
_root.ard_xml.onLoad = sucs;
то есть без круглых скобок

вторая ошибка:

функция sucs объявляется после того как дается ссылка на нее,
то есть

Код:
function sucs(success){ 
if(success == true){ 
_root.suc = true 
} 
else{ 
_root.suc = false 
} 
}
а только потом

Код:
_root.ard_xml.onLoad = sucs;
третья ошибка, вызов

_root.ard_xml.load("some.xml");

должен быть быть в конце кода, то есть сначала описываем что нужно делать, а только потом грузим. конечно ничего не закачается за эти три строчки, но все равно.

далее уже не ошибки, а так, шлифовка

во первых,
не зачем заводить и резервировать имя под функцию которая будет использована только для одного объекта XML.

правильнее писать так:

Код:
_root.ard_xml.onLoad = function (success){ 
if(success == true){ 
_root.suc = true 
} 
else{ 
_root.suc = false 
} 
}
кстати, что за бредовое название для функции?

еще одно пожелание,
если мы несколько раз меняем значения объекта (работаем с ним), но лучше сделать переменную которая будет хранить ссылку на этот объект, и уже с ней работать,
так будет и короче и понятнее,

после всего изложенного код будет выглядеть так:

Код:
var x = _root.ard_xml = new XML();

x.ignoreWhite = true; 

x.onLoad = function (success)
{ 
	if(success)
	{ 
		_root.suc = true;
		trace("Incoming XML:" + this)
	
	}else{ 
		_root.suc = false;
		trace("Error!")
	} 
}

x.load("some.xml");


Последний раз редактировалось john; 06.11.2002 в 17:04.