Форум 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: А если нет функции паузы, то, может, тогда кто-нибудь подскажет, как сделать программно мувику эффект фэйдинга? (когда он плавно становится прозрачным)

Мыкыта 17.10.2007 17:51

weblancer
смотри в хелпе свойства мувика, тебе нужна в частности _alpha

Carrion 17.10.2007 17:55

с помощью tweens - делается плавное. с помощью _alpha - прозрачность)
читай help. будут вопросы - обращайтесь)

weblancer 17.10.2007 18:02

to Мыкыта
Да про свойство _alpha я знаю, мне интересно как сделать ПЛАВНЫЙ фейд. Ведь если я напишу
Код:


for (var i:Number = 1; i <= 100; i++) {
 myMovie.alpha = i;
}

эта штука мигнет мгновенно и все.

to Carrion: Спасибо, понял.. Надо как-то скомбинировать ActionScript и свойства мувика?
Задача у меня такая - надо брать мувик с картинкой, медленно делать прозрачным, в прозрачный (невидимый) грузить новую картинку и медленно снова возвращать непрозрачность..

iNils 17.10.2007 18:07

weblancer, прочитайте про класс Tween

weblancer 17.10.2007 18:13

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

Carrion 17.10.2007 18:14

а в AS3 без них вообще никак. так что изучайте)

weblancer 17.10.2007 18:35

to Carrion: Тогда, пожалуйста, хоть книжку грамотную посоветуйте, или ссылку, если знаете. Тут на форуме искал - нашел только обсуждение.

Мыкыта 17.10.2007 18:39

дело втом что цикл обрабатывается до отрисовки кадра посему никакая анимация не получится =) можно навесить на onEnterFrame но лутше с помощью класа Tween как советовали постами выше

weblancer 17.10.2007 18:45

ХМ.. у меня flash8 и в хелпе - об AS3 ни слова..
Это значит что - это значит - все?
Финита ля комедиа, пока не куплю что-то поновее?

iNils 17.10.2007 18:46

Без АС3 вы еще пару лет спокойно проживете.
Некоторые до сих пор пишут на АС1 и чуствуют себя прекрасно.

Carrion 17.10.2007 18:50

as3 только в flash9 появилось.
а вообще учитесь искать сами - тогда быстрее и глубже все поймете, честно. в обсуждениях на форумах тоже много чего полезного. и fag - полезная вещь.
первое что под руку попалось -
http://demiart.ru/forum/lofi/index.php/t7707.html.
наверное не лучший вариант

weblancer 17.10.2007 18:54

Хе! Премного благодарен! нашел в хелпе нужное место.
Правда, в понимании классов не продвинулся, но задачу решил. :)
макака макакой.


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

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