PDA

Просмотр полной версии : прелоадер для swf со стримовым звуком


tsvan
26.07.2005, 16:09
Проблема следующая:
В swf-ку подгружается много других swf-ок и в том момент как они начинают подгружаться начинают воспроизводить стримовый звук который в них находится, т.о. получается каша из множество звуков. Можно ли каким-нить образом заставить их молчать во время прелоудинга?

iNils
26.07.2005, 16:11
размещай звук со второго кадра, а на первом ставь stop()

tsvan
26.07.2005, 16:16
Проблема в том что подгружаемые swf-ки не мной генерятся в них я поменять ничего немогу.
Звук у них начинает воспроизводиться со второго кадра- это я знаю но добавть в первый кадр я ничего не могу

iNils
26.07.2005, 16:29
тогда попробуй при загрузке их сам стопь

tsvan
26.07.2005, 17:05
а можно первый кадр у них отловить, чтобы при этом не успевал подгрузиться звук?

be4ever
26.07.2005, 17:12
Проблема следующая:
Можно ли каким-нить образом заставить их молчать во время прелоудинга?
Можно управлять громкостью. Для этого

_root.nameOfLoadedClip.mySound=new Sound();
//Обращаемся к клипу, который грузим (при загрузке дай ему имя) и делаем в нем переменную mySound, которой присваиваем звук.

_root.nameOfLoadedClip.mySound.setVolume(0);
//Устанавливаем громкость этому мувику на 0.

Далее, когда надо будет, просто опять на 100 процентов.
Еще можно
_root.nameOfLoadedClip.mySound.Stop();
а потом
_root.nameOfLoadedClip.mySound.Play();
и звук заново пойдет.

Подробности сам уже продумаешь... ;)

iNils
26.07.2005, 17:24
Там звук stream и программное управление не пройдет.

Попробуй на клипе куда грузишь поставить код:
onClipEvent (load) {
stop ();
}

Я понимаю что код от 5-ки, но если писать
имя_мувиклипа.onLoad =function ....
то при загрузке код сразу слетит, а пятерочный вариант - нет.

tsvan
26.07.2005, 17:37
А _root.nameOfLoadedClip.mySound=new Sound(); автоматически натравится на тот звук который там есть?
И вопрос как поймать тот момент когда начало мувика подгрузилось, а звук еще не проигрывается, в какой момент создавать newSound? Там есть еще одна загвоздка структура подгружаемого клипа такая:
-сначало идет основной таймлайн подгружаемого клипа
-на втором кадре у него мувиклип запускается со звуком внутри
По-моему он такой. Если интересует могу выложить пример, только он жирный около 2Мег.

tsvan
26.07.2005, 17:44
а событие onLoad произойдет когда клип загрузится полностью или загрузится до того момента когда он начнет проиграваться?

iNils
26.07.2005, 17:49
как только первые байты поступят так и сработает.

tsvan
26.07.2005, 17:50
спасибо я попробую!

be4ever
28.07.2005, 01:36
А _root.nameOfLoadedClip.mySound=new Sound(); автоматически натравится на тот звук который там есть?
И вопрос как поймать тот момент когда начало мувика подгрузилось, а звук еще не проигрывается, в какой момент создавать newSound? Там есть еще одна загвоздка структура подгружаемого клипа такая:
-сначало идет основной таймлайн подгружаемого клипа
-на втором кадре у него мувиклип запускается со звуком внутри
По-моему он такой. Если интересует могу выложить пример, только он жирный около 2Мег.
Насколько я понимаю, у тебя идет
LoadMovie или LoadMovieNum.
Можешь сделать так: например, пожгружаем при нажатии батона, тогда
сначала создаем символ, например, если на root уже есть звук или просто нет надобности его затирать и называем его nameOfLoadedClip. Символ пустой и с одним кадром.
а на символе какой-нить кнопки пишем:

on (press) {
loadMovie("sound.swf",_root.nameOfLoadedClip); //грузим в наш пустой клип
_root.nameOfLoadedClip.mySound=new Sound();
if (_root.clipname.framesLoaded=2) { //фрэйм 2 есть, а значит и грузиться начал.
_root.nameOfLoadedClip.mySound.setVolume(0); //говорим звуку нет
}
if (_root.clipname.bytesLoaded=_root.clipname.bytesTotal) { // байты загрузились все.
_root.nameOfLoadedClip.mySound.setVolume(100); //говорим звуку да
}
}

Только при этом варианте для старта звука надо опять батон жать, тогда лучше on(трали-вали) заменить на onClipEvent(EnterFrame)
Тогда будет идти постоянная проверка и не надо будет мучать юзера при загрузке нового мувика. Можно только строку подгрузки вставить на нужное место, например на каку-нить кнопку, а все остальное на онКлипЕвент прописать на символе nameOfLoadedClip.
Запутал? Да не так все сложно! ;)