PDA

Просмотр полной версии : Проверка загрузки XML


Olesolo
13.02.2007, 12:29
Загружается XML проходит через парсер.

myXML.onLoad = function(success) {
if (success) {
_global.TextObj = XMLParser.parse(this);
_global.ts = 1;
}
};

В разных клипах используються переменные из ХМЛ, но они пытаються загрузить их не дожидаясь загрузки ХМЛ.

я специально вставил переменную ts, чтобы попытаться рулить процессом.
А в мувиклипах по два или больше кадров с кодом:

stop();
if (ts == 1) {
popup.textplace.text = TextObj.object.info1;
} else {
play();
}

т.е. оно бегает по кругу пока не дождеться переменных.
через Ж, но работает.

можно ли как то оптимизировать этот код? например, сделать по-нормальному проверку загрузки ХМЛ.

CorC
13.02.2007, 12:36
можно,
выполнять весь остальной нужный код
только после парсера, вызывать функцию
прямо из конца парсера

etc
13.02.2007, 13:10
Не запихивайте в _global ничего постороннего. Иначе это может привести к проблемам в будущем.

Olesolo
13.02.2007, 13:16
непонял :\

мне бы хотелось сделать в мувиклипах загрузку сразу в первый кадр клипа, без перебора кадров.

Olesolo
13.02.2007, 13:17
2_etc:
т.е. ничего постороннего?

etc
13.02.2007, 13:23
2_etc:
т.е. ничего постороннего?
Вообще ничего с приставкой _global не пользовать. Если у вас есть классы, юзайте статические свойства этих классов для хранения глобальных данных.

Olesolo
13.02.2007, 13:27
это критично?

etc
13.02.2007, 13:31
Критично.
http://www.flasher.ru/forum/showthread.php?t=90836
http://www.flasher.ru/forum/showthread.php?t=90328
Стоит почитать.

Olesolo
13.02.2007, 14:01
мда..
дилетант я.. учиться еще многому :)

вообщем решил свою проблему так:

было

stop();
if (ts == 1) {
popup.textplace.text = TextObj.object.info1;
} else {
play();
}


стало

stop();
function timer() {
popup.textplace.text = TextObj.object.info1;
}
moo = setInterval(timer, 100);


а в следущем кадре, если требуется загрузить другие переменные:
clearInterval(moo);

наверняка это самый :wacko: способ, но пока на более я не способен.
главное работает :)
хотя возможно, как я понял из выше написанных ответов, у меня есть все шансы вляпаться в более крутое г.
:confused:

CorC
13.02.2007, 14:48
а если ХМЛ будет читаться дольше чем 100 миллисекунд?
заводишь функцию которая должна выполняться после
загрузки ХМЛ, и после чтения из ХМЛ ее вызываете.

Olesolo
13.02.2007, 15:00
а если не трудно пример можно?

Olesolo
13.02.2007, 19:34
Вот исходник.
То как у меня организована работа ХМЛ. :wacko:

CorC
13.02.2007, 20:09
myXML.onLoad = function(success) {
if (success) {
//load fron XML
NextAction();//next step
}
};
function NextAction(){
//using data from XML
}