Форум 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)
-   -   Помогите с загрузкой, пожалуйста! (http://www.flasher.ru/forum/showthread.php?t=102581)

weblancer 17.10.2007 12:55

Помогите с загрузкой, пожалуйста!
 
Задача банальная, но я чего-то непонимаю.
Скажу сразу, в факе рылся, нашел вариант решения проблемы, он работает, но мне хочется понимания, что я делаю, а не просто чужой рабочий код.

Если кому не влом, объясните, пожалуйста, в двух словах? Могу угостить в Москве пивом. :)

Есть текстовый файл sсhem.txt в нем 4 переменные:

vsq1=1.jpg&vsq2=2.jpg&vsq3=2.jpg&vsq4=1.jpg


Во флеше пишу:
Код:

loadVariables ("schem.txt", vars);
trace(vars.vsq1);

В результате - trace выдает undeffined, хотя в дебагере видно, что в level0.vars определены переменные vsq1, vsq2, vsq3 и vsq4 с правильными значениями. И воспользоваться этими переменными не удается никак.


В чем проблема?

Carrion 17.10.2007 13:10

возможно не успело загрузиться
Код:

this.createEmptyMovieClip("vars",this.getNextHighestDepth());
loadVariables("schem.txt", vars);
function checkParamsLoaded() {
        if (vars.vsq1 == undefined) {
                trace("not yet.");
        } else {
                trace(vars.vsq1)
                clearInterval(param_interval);
        }
}
var param_interval:Number = setInterval(checkParamsLoaded, 100);


weblancer 17.10.2007 13:26

Так оно только внутри процедуры работает... Если сделать вот так:
Код:

loadVariables("schem.txt", vars);

function checkParamsLoaded() {
        if (vars.vsq1 == undefined) {
                trace("not yet.");
        } else {
                //trace(vars.vsq1)
                clearInterval(param_interval);
        }
}

var param_interval:Number = setInterval(checkParamsLoaded, 100);

trace(vars.vsq1);

то опять undeffined получаем...

Основной ролик продолжает выполняться не дожидаясь конца процедуры?

Carrion 17.10.2007 13:54

эээ.....
т.е. "не дожидаясь конца процедуры"?
функция может вообще не вызываться:
Код:

function f(){
    trace("function");
}
// f();
trace("code")

или вызываться (откамменьте).
================================
а теперь по поводу вашего вопроса: в то время как вы пытаетесь вывести значение - оно ещё не загрузилось, т.е. loadVariable не сработало.
сделайте кнопку и не него повесте обработчик нажатия, понажимайте, и тогда вы надеюсь поймете принцип работы:
Код:

btn.onPress = function(){
        trace(vars.vsq1);
}


iNils 17.10.2007 13:54

weblancer, для оформления своего кода, надо использовать теги [code][/code]. Исправте 1-ый и 4-вы пост. Кроме того, есть кнопка http://www.flasher.ru/forum/images/r...ttons/edit.gif, поэтому не надо создавать несколько сообщений подряд, надо исправить последнее в теме.

weblancer 17.10.2007 14:09

to iNils : Прошу прощения, все понял.

to Carrion: Большое спасибо, кажется, разобрался..

Carrion 17.10.2007 14:13

нет, если нужно чтобы определенный код выполнился в определенное время - пользуйтесь функциями! они действительно помогают)

weblancer 17.10.2007 14:38

Будете в Москве - пиво за мной. :)

Mr. Fixit 17.10.2007 15:23

не советую использовать loadVariables,
пользуйтесь классом LoadVars.

weblancer 17.10.2007 16:43

to Mr. Fixit: Спасибо, учту.

to Carrion: А если нет функции паузы, то, может, тогда кто-нибудь подскажет, как сделать программно мувику эффект фэйдинга? (когда он плавно становится прозрачным)


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

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