Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проверка загрузки XML (http://www.flasher.ru/forum/showthread.php?t=91982)

Olesolo 13.02.2007 12:29

Проверка загрузки XML
 
Загружается 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

Цитата:

Сообщение от Olesolo
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 миллисекунд?
заводишь функцию которая должна выполняться после
загрузки ХМЛ, и после чтения из ХМЛ ее вызываете.


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

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