![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 12
|
Хочу попросить помощи с кодом, который я взял с сайта flashist.ru - это плавное включение/выключение звука в ролике (пробовал писать автору, но ответа нет). Этот код работает замечательно, но в моем случае он немного не подходит ввиду того, что он выключает/включает звук во всем мувиклипе; собственно в чем вопрос - можно ли его адаптировать(если возможно то как?), чтобы он выключал/включал плавно только определенный звук/музыку?
Вот сам код: btn_mc.gotoAndPlay(2); var s_sound:Sound = new Sound(this); s_sound.attachSound("Music"); s_sound.start(0, 99999); s_sound.onSoundComplete = function() { this.start(0, 99999); }; btn_mc.onRelease = function() { clearInterval(_root.sound_int); if (_root.s_sound.getVolume()<100) { _root.sound_int = setInterval(_root.soundOn_func, 50, 10); this.gotoAndPlay(7); } else { _root.sound_int = setInterval(_root.soundOff_func, 50, 10); this.gotoAndPlay(2); } }; function soundOff_func(varDelta:Number) { _root.s_sound.setVolume(_root.s_sound.getVolume()-5); if (_root.s_sound.getVolume()<=varDelta) { clearInterval(_root.sound_int); _root.s_sound.setVolume(0); } } function soundOn_func(varDelta:Number) { _root.s_sound.setVolume(_root.s_sound.getVolume()+varDelta); if (_root.s_sound.getVolume()>=100) { clearInterval(_root.sound_int); _root.s_sound.setVolume(100); } } |
|
|||||
|
Для каждого объекта объявляете свой звук.
Т.е. s_sound...s_sound2...s_sound3... |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 12
|
не помогает это... дело в том, что код, как я понимаю завязан на _root'e, и скорее всего в этом проблема, но я спрашиваю, потому что не знаю как сделать так, чтобы он не влиял на все звуки в мувиклипе
![]() Последний раз редактировалось invictus; 13.07.2009 в 12:02. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 1
|
там же есть урок Учимся работать со звуком
если объединить эти два урока то получится то что вам нужно |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 12
|
я смотрел оба урока, и ничего нового для решения моей проблемы я не нашел, а спрашиваю здесь, на этом форуме, потому что не понимаю что надо сделать, поэтому и прошу помощи....
понимаю, возможно меня не совсем правильно поняли, но я прошу указать мне, из-за каких эл-тов кода звук регулируется во всем мувиклипе, и по возможности/желанию указать, что надо изменить, чтобы было так как мне хотелось бы... |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 165
|
__________________
Да здравствует то, благодаря чему мы не смотря ни на что! |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 12
|
как смог, поробовал, без результатов
я полагаю, что причина в том, что в коде регулирование звука завязано с _root'ом - это можно как-либо изменить, чтобы отношение было только к одному звуку? на что его заменить? я пробовал на this, имя символа со звуком (это конечно оказалось неправльно)...Добавлено через 8 часов 7 минут пробовал также назначать через lib_sound.... также не помогло Добавлено через 19 часов 4 минуты попробовал учесть все идеи, которые здесь дали, получилась такая конструкция ![]() в начале мувиклипа: this.createEmptyMovieClip("kkt_mc", this.getNextHighestDepth()); this.createEmptyMovieClip("bg_s", this.getNextHighestDepth()); var kkt:Sound = new Sound(_root.kkt_mc); kkt.attachSound("kkt"); var muzika:Sound = new Sound(_root.bg_s); muzika.attachSound("muzika"); ==далее== в нужном месте, для звука стоит kkt.start(0, 1), а для кнопки с музыкой такое: btn_mc.gotoAndPlay(2); muzika.start(0, 99999); muzika.onSoundComplete = function() { this.start(0, 99999); }; btn_mc.onRelease = function() { clearInterval(_root.bg_s.sound_int); if (_root.bg_s.muzika.getVolume()<100) { _root.bg_s.sound_int = setInterval(_root.bg_s.soundOn_func, 50, 10); this.gotoAndPlay(7); } else { _root.bg_s.sound_int = setInterval(_root.bg_s.soundOff_func, 50, 10); this.gotoAndPlay(2); } }; function soundOff_func(varDelta:Number) { _root.bg_s.muzika.setVolume(_root.bg_s.muzika.getVolume()-5); if (_root.bg_s.muzika.getVolume()<=varDelta) { clearInterval(_root.bg_s.sound_int); _root.bg_s.muzika.setVolume(0); } } function soundOn_func(varDelta:Number) { _root.bg_s.muzika.setVolume(_root.bg_s.muzika.getVolume()+varDelta); if (_root.bg_s.muzika.getVolume()>=100) { clearInterval(_root.bg_s.sound_int); _root.bg_s.muzika.setVolume(100); } } - музыка играет, звуки есть в нужных местах - все супер, до того, как я хочу плавно выключить эту музыку вообщем происходит следующее - кнопка отвечающая за плавное вкл/выкл музыкы переходит в нужное состояние для положение "выкл" так как изначально, когда ролик начинает воспроизводится, она в состоянии вкл(это то как и надо, тут все ок), но не смотря на кнопку музыка не останавливается, а при попытке еще раз нажать на кнопку с музыкой - ничего не происходит, можно сказать, кнопка зависает и не меняет положения....также по предложению свыше пробовал там где начало кода и аттач звуков с музыкой накинуть - но сим не дало эффекта... короч, у меня окончательный тупняк - все рабочее, но не так как надо, флэш на код не ругается ни там ни сям... ![]() Последний раз редактировалось invictus; 17.07.2009 в 19:22. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
this.createEmptyMovieClip ("frontSound", this.getNextHighestDepth ()); var snd:Sound = new Sound (this.frontSound); snd.attachSound ("snd"); /// this.createEmptyMovieClip ("bgSound", this.getNextHighestDepth ()); var music:Sound = new Sound (this.bgSound); music.attachSound ("music"); /// btn_mc.gotoAndPlay (2); music.start (0, 99999); music.onSoundComplete = function () { this.start (0, 99999); }; /// var flagMute:Boolean = false; var interval:Number /// btn_mc.onRelease = function () { clearInterval (interval); if (flagMute) { interval = setInterval (soundOff, 50, 10); this.gotoAndPlay (2); } else { interval = setInterval (soundOn, 50, 10); this.gotoAndPlay (7); } flagMute = !flagMute; }; function soundOff (varDelta:Number) { music.setVolume (music.getVolume () - 5); if (music.getVolume () <= varDelta) { clearInterval (interval); music.setVolume (0); } } function soundOn (varDelta:Number) { music.setVolume (music.getVolume () + varDelta); if (music.getVolume () >= 100) { clearInterval (interval); music.setVolume (100); } } |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 12
|
я очень благодарен комраду iNils за решения проблемы
)) но вот чудесным образом этот код как-то повлиял на прелоадер ролика, раньше он работал с самого начала - т.е. с 1%, а теперь я долго любуюсь пустым экраном в течении n-ого времени, а потом вдруг появляется прелоадер сразу на процентах ~75-80% - в чем может быть загвостка? да и как мог код на кнопку повлиять на прелоадер.... X)Добавлено через 19 часов 1 минуту ----- ага, выяснил, повлияло то, что на файле музыки был проставлен линкедж с экспортом в первый кадр... как теперь быть? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
2. Создаете пустой клип, переносите его во второй кадр основного таймлайна. 3. В первом кадре клипа пишите stop (); 4. Во втором кадре клипа в таймлайн вставляете ваш звук. Таким образом мы импортируем звук в swf, но не в первый кадр, что дает прелоадеру из первого кадра нормально работать. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|