Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 17.06.2004, 13:44
sergsa вне форума Посмотреть профиль Отправить личное сообщение для sergsa Найти все сообщения от sergsa
  № 1  
sergsa

Регистрация: 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), хотя звук еще не загружен не пойму почему?

Старый 17.06.2004, 14:31
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
сделай trace (_root.ss.getBytesTotal()) и trace(_root.ss.getBytesLoaded(())
Тады должно быть ясно...

Кстати, как ты определил, что звук не загружен? Может ппппросто добавить:
ss.onLoad = function(){
ss.setVolume(100);
ss.start();
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 17.06.2004 в 14:33.
Старый 17.06.2004, 14:56
sergsa вне форума Посмотреть профиль Отправить личное сообщение для sergsa Найти все сообщения от sergsa
  № 3  
sergsa

Регистрация: Jul 2003
Сообщений: 87
если тестить на локальной машине то звук загрузится очень быстро trace-ы выдадут одинаковые числа,
именно поэтому на локальной все в порядке, а не грузится на серваке, точнее грузится, но событие срабатывает до того как звук загрузился

Определил что звук не загрузился потому, что он не играет, а через некоторое время после клика на кнопке управляющей звуком(он/офф)-играет

OnLoad в любом случае не катит потому, что нужно отслеживать прогресс загрузки

Старый 17.06.2004, 15:59
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Во время загрузки с сервака делай трэйсы getBytesLoaded и getBytesTotal.

Причем, если мне не изменяет память, getBytesTotal может выдавать и 0, и undefined и -1. Все зависит от скорости соединения и степени загруженности сервера. Ведь серверу надо время, чтобы прочухать у себя на харде запрашиваемый файл и определиться с его размером, а затем отправить заголовок HTTP-ответа с указанием размера файла, который в свою очередь флэш и ловит. А что выдает getBytesTotal в промежутке между запросом к серверу и ответом сервера, ты и отследишь трэйсом, и догонишь, как надо код изменить.
Good luck!
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 17.06.2004, 18:47
sergsa вне форума Посмотреть профиль Отправить личное сообщение для sergsa Найти все сообщения от sergsa
  № 5  
sergsa

Регистрация: 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

Старый 17.06.2004, 18:52
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
а ты округли в большую сторону любое дробное число от нуля до единицы :))
Цитата:
t=Math.ceil(_root.ss.getBytesLoaded()/_root.ss.getBytesTotal())*100

Старый 17.06.2004, 20:29
sergsa вне форума Посмотреть профиль Отправить личное сообщение для sergsa Найти все сообщения от sergsa
  № 7  
sergsa

Регистрация: Jul 2003
Сообщений: 87

Создать новую тему   Часовой пояс GMT +4, время: 02:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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