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

DemonD 02.02.2008 20:51

Как предотвратить повторное проигрывание флеш ролика
 
ставлю на прелоадер следующий скрипт

Код:

onClipEvent (load) {
        myVar = SharedObject.getLocal("cookie_test1");
msg = myVar.data.txt; // считываю инфо с кукисов
if (msg == "loaded"){
        gotoAndStop("s1");

// пишу что делать, если мувик уже загружался прежде
}else{
myVar.data.txt = "loaded";// записываю в кукисы с названием "cookie_test1" значение "loaded"
myVar.flush();
}

        total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
        loaded = _root.getBytesLoaded();
        percent = int(loaded/total*100);
        text = percent+"%";
        gotoAndStop(percent);
        if (loaded == total) {
                _root.gotoAndPlay(2);
        }
}

Это не помогает флеш проигрывает всё каждый раз начиная со второго кадра. Вообще в идеале необходимо сделать так, что если пользователь один раз остановил анимацию _root.anim = 0 , то при перезагрузки этой или другой страницы анимация не проигрывалась, а если пользовател нажмёт "проиграть анимацию" _root.anim = 1 то соответственно флешка проигрывается при перезагрузке.
Заранее спасибо.

MrPoma 02.02.2008 21:39

писать код в клипах - запрещено!

DemonD 02.02.2008 22:31

Спасибо, ничего так и не понял.

MrPoma 02.02.2008 23:04

Код:

var myVar:SharedObject = SharedObject.getLocal('cookie');
var msg:String = myVar.data.txt; // считываю инфо с кукисов
if (msg != 'loaded'){
        myVar.data.txt = 'loaded';
        myVar.flush();
          trace('в первый раз вы у нас')
}else{
        trace('много раз были у нас')
}

var total:Number = _root.getBytesTotal();

onEnterFrame = function(){
        var loaded:Number = _root.getBytesLoaded();
        var percent:Number = Math.round(loaded/total*100);
        trace(percent+'%;);
       
        if(loaded >= total) {
                trace('загружено')
        }
}


iNils 02.02.2008 23:31

DemonD, для оформления своего кода надо использовать теги [code][/code].

DemonD 02.02.2008 23:47

Как я понял это и есть прелоадер, пишу следующее в первом кадре ролика:
Код:

stop();
var msg:String = myVar.data.txt; // считываю инфо с кукисов
if (msg != 'loaded'){
        myVar.data.txt = 'loaded';
        myVar.flush();
                  gotoAndPlay(2);//в первый раз вы у нас

}else{
       
        gotoAndStop("s1");//много раз были у нас

}

var total:Number = _root.getBytesTotal();

onEnterFrame = function(){
        var loaded:Number = _root.getBytesLoaded();
        var percent:Number = Math.round(loaded/total*100);
        trace(percent+'%');
       
        if(loaded >= total) {
                trace('загружено')
        }
}

Но в этом случае даже при загрузке ролика первый раз он отсылает на "s1"

MrPoma 03.02.2008 00:17

потому что много раз тестили. естественно, что инфа уже там.
Код:

myVar.clear()

DemonD 03.02.2008 01:15

Фух, к сожалению опять не получается.
Тут исходник примерно того что хотелось бы получить:
http://www.rapidshare.ru/564255

D12 03.02.2008 02:58

Сделайте кнопку в 1 кадре которая будет активна когда всё загрузится и которя будет перепровлять в 2 кадр
так не годится ?

DemonD 03.02.2008 03:17

Суть в том, что хотябы один раз анимация должна проиграть без участия пользователя. Т.е. по сути нужно забросить кудато информацию и потом от туда считыватью Может создать в кеше браузера какойто ХМЛ документ, если конечно такое возможно.

На форуме, в исходниках, есть такой пример как:primer SharedObject, но он сделан под 1-й Action, скорее всего нужно использовать что-то в этом плане.


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

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