Форум 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)
-   -   прелоадер для swf со стримовым звуком (http://www.flasher.ru/forum/showthread.php?t=67162)

tsvan 26.07.2005 16:09

прелоадер для swf со стримовым звуком
 
Проблема следующая:
В 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

да просто все :)
 
Цитата:

Сообщение от tsvan
Проблема следующая:
Можно ли каким-нить образом заставить их молчать во время прелоудинга?

Можно управлять громкостью. Для этого

_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

Цитата:

Сообщение от tsvan
А _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.
Запутал? Да не так все сложно! ;)


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

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