|
|
|||||
Регистрация: Jul 2003
Сообщений: 87
|
предзагрузчик для звука
на _root. :
ss=new Sound() ss.loadSound("sound.mp3",false) и ролик на последнем кадре которого: stop() this.onEnterFrame = function(){ t=Math.ceil(_root.ss.getBytesLoaded()/_root.ss.getBytesTotal())*100 z=t+"%" if(t==100){ _root.ss.start(0,999) gotoAndPlay(1);delete this.onEnterFrame } } выполняется условие (t==100), хотя звук еще не загружен не пойму почему? |
|
|||||
.
|
сделай trace (_root.ss.getBytesTotal()) и trace(_root.ss.getBytesLoaded(())
Тады должно быть ясно... Кстати, как ты определил, что звук не загружен? Может ппппросто добавить: ss.onLoad = function(){ ss.setVolume(100); ss.start(); } Последний раз редактировалось dimarik; 17.06.2004 в 14:33. |
|
|||||
Регистрация: Jul 2003
Сообщений: 87
|
если тестить на локальной машине то звук загрузится очень быстро trace-ы выдадут одинаковые числа,
именно поэтому на локальной все в порядке, а не грузится на серваке, точнее грузится, но событие срабатывает до того как звук загрузился Определил что звук не загрузился потому, что он не играет, а через некоторое время после клика на кнопке управляющей звуком(он/офф)-играет OnLoad в любом случае не катит потому, что нужно отслеживать прогресс загрузки |
|
|||||
.
|
Во время загрузки с сервака делай трэйсы getBytesLoaded и getBytesTotal.
Причем, если мне не изменяет память, getBytesTotal может выдавать и 0, и undefined и -1. Все зависит от скорости соединения и степени загруженности сервера. Ведь серверу надо время, чтобы прочухать у себя на харде запрашиваемый файл и определиться с его размером, а затем отправить заголовок HTTP-ответа с указанием размера файла, который в свою очередь флэш и ловит. А что выдает getBytesTotal в промежутке между запросом к серверу и ответом сервера, ты и отследишь трэйсом, и догонишь, как надо код изменить. Good luck! |
|
|||||
Регистрация: Jul 2003
Сообщений: 87
|
Мистика! сделал два динамических текста с переменными tot и lod и в тело ф-ции вставил
tot=_root.ss.getBytesTotal() lod=_root.ss.getBytesLoaded() вот так получяется: this.onEnterFrame = function(){ t=Math.ceil(_root.ss.getBytesLoaded()/_root.ss.getBytesTotal())*100 z=t+"%" if(t==100){ _root.ss.start(0,999) tot=_root.ss.getBytesTotal() lod=_root.ss.getBytesLoaded() gotoAndPlay(1);delete this.onEnterFrame } } выводит два разных числа, а t==100-все равно true |
|
|||||
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
а ты округли в большую сторону любое дробное число от нуля до единицы :))
Цитата:
|
|
|||||
Регистрация: Jul 2003
Сообщений: 87
|
|
Часовой пояс GMT +4, время: 02:47. |
|
« Предыдущая тема | Следующая тема » |
|
|