Форум 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)
-   -   loadSound preloader (http://www.flasher.ru/forum/showthread.php?t=80731)

$mival 05.06.2006 17:10

loadSound preloader
 
нужен прелоадер для подгружаемого звука, но блин что-то не работает вот такой скрипт: (в первом кадре)

Код:

_root.stop();
_root.createEmptyMovieClip("s", 10);
snd = new Sound(s);
snd.onLoad = function() {
        this.start();
}
snd.loadSound("so1.mp3", false);
_root.onEnterFrame = function() {
        t = snd.getBytesTotal();
        l = snd.getBytesLoaded();
        pr.txt.text = (l/t) * 100 + "% loaded";
        if (l >=t) {
                delete _root.enterFrame;
                _root.gotoAndStop(2);
        }
}

тут сразу переходит на второй кадр, не дожидаясь загрузки звука. То есть getBytesLoaded==getBytesTotal вначале загрузки. Почему так происходит :wacko:

MyXus 05.06.2006 17:16

такая тема бывает в локале. t = l = 0.
попробуй поставить условие

kayama 05.06.2006 17:38

А имитация загрузки что показывала?

MyXus 05.06.2006 17:53

Я что хочу сказать. Недавно я поднимал похожую тему, меня попинали, я и сам стал думать, что ошибся.
На самом деле у меня есть уже 3 проекта, в которых недоделанность общепринятого механизма прелоадинга дает нестабильные сбои.
Для себя я теперь полную загрузку ролика фиксирую таким набором условий:
Код:

if(o.obj.getBytesLoaded() == o.obj.getBytesTotal() && o.obj.getBytesTotal()>0 && o.obj._width)
ЗЫ. это, понятно, для мувов. Для звука последнее условие не нужно ;-)

$mival 05.06.2006 18:40

в том то и прикол что в локалке вначале загрузки показывает что загружено ВСЕ 94775 байт звука!
В нэт выкладывал - то же самое: они оба (getBytesLoaded & getBytesTotal) не равны нулю, а равны 94775 :rolleyes: и сразу на второй кадр

elzone 05.06.2006 20:08

попробовал у себя - все крутится как надо

Код:

_root.stop();
_root.createEmptyMovieClip("s", 10);
snd = new Sound(s);
snd.onLoad = function() {
        this.start();
}
snd.loadSound("tr1.mp3", false);
_root.onEnterFrame = function() {
        t = snd.getBytesTotal();
        l = snd.getBytesLoaded();
        _root.text = int(l/t * 100) + "% loaded";
        if (l == t) {
                delete _root.enterFrame;
            _root.gotoAndStop(2);
        }
}


$mival 05.06.2006 20:28

to elzone: будешь смеяться, но твой код действительно работает ... только локально :eek:

elzone 05.06.2006 20:44

поправочка небольшая

Код:

_root.stop();
_root.createEmptyMovieClip("s", 10);
snd = new Sound(s);
snd.onLoad = function() {
        this.start();
}
snd.loadSound("tr1.mp3", false);
_root.onEnterFrame = function() {
        t = snd.getBytesTotal();
        l = snd.getBytesLoaded();
        _root.text = int(l/t * 100) + "% loaded";
        if (l == t && t > 0) {
                delete _root.enterFrame;
            _root.gotoAndStop(2);
        }
}

http://elzone.net/test/mp3/1.html

просто при загрузке из инета не всегда стразу определяет размер

$mival 06.06.2006 05:20

ща попробую...
неа. даже локально не катается :eek:

Usnul 06.06.2006 05:49

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


ЗЫ
ушел спать.


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

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