Форум 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=81603)

aaum 22.06.2006 21:01

верификация дочерней флешки
 
Добрый день. Поиск еще больше запутал меня, неопытного :) Понимаю, и проблема то смешная, однако заняла у меня приличное время... итак, в "голову", где установлен общий прелоадер, подружаются дочерние swf в контейнер plassen :
Код:

stop();
this.onEnterFrame = function() {
        if (vara != naa) {
                plassen.unloadMovie;
                plassen.loadMovie((("SA"+vara)+".swf"));
                naa = vara;
        } else {
                j = plassen.getBytesLoaded();
                e = plassen.getBytesTotal();
                if (j == e) {
                ja = true;
                } else {
                _root.ladder.gotoAndStop(Math.round(j/e*100));
                ja = false;
                }
        }
};

а в руте подгружаемой:
Код:

if (ja = true) {
        gotoAndPlay(2)};
stop();

то есть смысл в том, чтобы начать показ ролика лишь в случае полной его загрузки. Здесь я нарочно потер идентификаторы уровней и оставил одну суть... и еще, по "критериям изящного" - что можно было бы придумать вместо приведенного выше способа?

Спасибо, дорогие!

RandomUser 22.06.2006 21:48

Код:

if (ja == true) {
        gotoAndPlay(2)};
stop();

P.S.Читай в хелпе про MovieClipLoader

aaum 22.06.2006 23:12

касательно первого варианта: воспользоваться _global является выходом? Если да, то каким образом это можно осущесвить?

относительно второго способа, с использованием MovieClipLoader - я никогда его не применял, возможно - к сожалению, тем более что он актуален лишь с 7-й версии...

Techmaker 23.06.2006 01:10

во первых: в твоём коде нашёл ещё одну ошибку синтаксического плана =)
Цитата:

Сообщение от aaum
plassen.unloadMovie;

функции(методы) запускаются при помощи ()
т.е. надо писать так
Код:

plassen.unloadMovie();
Цитата:

Сообщение от aaum
касательно первого варианта

мы грузим swf внутрь мувиклипа plassen, по этому plassen - будет рутом swf
т.е. ja надо записывать внутри plassen
Код:

plassen.ja = true;
вот я переделал твой код прелоадера(сделал более правильным по логике), изучи:
Код:

this.onEnterFrame = function() {
        if (naa != vara) {
        naa = vara;
                plassen.loadMovie(("SA"+vara)+".swf");
        loadedflag=false;
        }
    if(!loadedflag && naa!=undefined){ // если не загружено и есть что грузить
                lod = plassen.getBytesLoaded();
                tot = plassen.getBytesTotal();
              if(tot>4 && lod*tot>0){ // старт загрузки
                        _root.ladder.gotoAndStop(Math.round(lod/tot*100));
                        if (lod == tot) { // конец загрузки
                loadedflag=true;
                                plassen.gotoAndPlay(2);
                        }
        }
        }
};

а в руте подгружаемой:
Код:

stop();

aaum 23.06.2006 01:43

ура!!! выход найден!! кому интересно:
Код:

else {
                j = plassen.getBytesLoaded();
                e = plassen.getBytesTotal();
                if (j == e) {
                        plassen.gotoAndPlay(2);
                } else {
                        _root.ladder.gotoAndStop(Math.round(j/e*100));
                }
        }
};

и все!! а в подружаемом ролике в первый кадр пишем stop (); а со второго начинается ролик.

ЗЫ: :quiet: - это я, когда я чем то доволен! и отдельное спасибо techmaker, сообщение которого я не заметил вовремя


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

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