Форум 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)
-   -   переключение музыки (http://www.flasher.ru/forum/showthread.php?t=97370)

serdeles 20.06.2007 02:27

переключение музыки
 
Я хочу чтобы при наведении на кнопку основная музыка (звук) выключалась, и играла другая - всё время, пока мышка наведена на кнопку. Когда убираю мышку, надо, чтобы о5 проигрывался основной звук. Подскажите, пожалуйста, каким образом такое осуществить.

mr.N 20.06.2007 03:20

Объект Sound

CorC 20.06.2007 10:48

Код:

mc.onRollOver=function(){
  snd1.stop();
  snd2.start();
}
mc.onRollOut=function(){
  snd2.stop();
  snd1.start();
}

snd - звуки, mc - кнопка
про snd смотреть во 2 пост

serdeles 20.06.2007 11:07

спасибо!

serdeles 21.06.2007 16:14

Не выходит :-( Прикладываю файл.
Суть в том, что надо:
на главной сцене играет музыка (snd1), есть кнопка, при наведении на которую snd1 выключается, и начинает играть другая музыка (snd2). Когда убираем мышку с кнопки, snd2 выключается и играет snd1.

При этом надо учитывать, что кроме звука при Roll Over и Roll Out проигрывается ещё один мувик.

Код, который мне привели выше, почему-то выдаёт ошибки, кроме того, я не знаю, как совместить его с кодом для анимации мувика.

Помогите, кто может, пожалуйста.

Не получается загрузить файл - поэтому дам ссылку - весит 11 Кб.

mr.N 21.06.2007 16:35

CorC, просто написал сокращённую версию того, что тебе надо.
snd1 и snd2 - это не мувиклипы, это объекты Sound
В общем виде тебе нужно следующее.
1. Прописать в библиотеке в Linkage у твоих звуков их имена, пусть будет соответственно как в исходнике guitarra и pareja.
2. Пишем код в кадре
Код:

snd1=new Sound();
snd2=new Sound();
snd1.attachSound("guitarra");
snd2.attachSound("pareja");

3. Далее в том же кадре пишем код CorC'a (кнопка - это мувиклип с instance name mc).

Код:

mc.onRollOver=function(){
  snd1.stop();
  snd2.start();
}
mc.onRollOut=function(){
  snd2.stop();
  snd1.start();
}


serdeles 21.06.2007 18:01

Спасибо.
Всё сделал, как посоветовали.
Только вот ещё проблема - когда убираю мышку, snd1 проигрывается тока один раз. А мне надо, чтобы он был залупленным (извиняюсь за тафтологию))), как, в принципе, и snd2. Можно ли в параметрах объекта Sound где-нить указать loop или чёнть типа того?
Ссылка та же.

Ах, да, и ещё: звук для кадра может быть тока один (внизу справа указывается) - а если не указать ничего - то тишина полная. С этим можно как-нибудь бороться? Ведь выходит, на одном кадре у меня два звука висят одновременно, только проигрываются в зависимости от наведения мыши на кнопку...

P.S. И ещё - атуален ли этод метод, если кнопка находится в другом кадре? Грубо говоря - на 7-м кадре - код, а на 20-м кнопка.

Kikasso 21.06.2007 18:10

В хелпе посмотрите, что со звуком делают. Выделяете в коде слово Sound и кликаете мышкой по знаку вопроса справа наверху. Открывается хелп в нужном месте.

serdeles 21.06.2007 18:20

Спасибо. Теперь буду исключительно хэлпом пользоваться. Вместо форума. Остальным передайте, чтоб тоже шли в хэлп. Нечего здесь вопросы задавать. Всё в хэлпе написано.

P. S. Я даже и не знал ничего о хэлпе. И ни разу там ничего не читал.

Kikasso 21.06.2007 19:12

Обидки неуместны.
Вот что про Sound в хелпе пишут:
Цитата:

onSoundComplete = function() {}
Invoked automatically when a sound finishes playing.

start([secondOffset:Number], [loops:Number]) : Void
Starts playing the last attached sound from the beginning if no parameter is specified, or starting at the point in the sound specified by the secondOffset parameter.
То есть либо цепляете на onSoundComplete повторный старт звука, либо стартуете звук с заведомо большим количеством повторений.

serdeles 21.06.2007 19:34

Я и не кидаю обидки.
С саундом я разобрался. И с его залупливанием тоже. Кстати, благодаря Вашему примеру из одного из старых постов здесь на форуме:
Код:

snd1.onSoundComplete = function(){snd1.start(0);}
Но я не только о звуке спрашивал. У меня на 7-м кадре сцены начинается музыка (она же главная тема для сайта, поэтому залупленная). При наведении на кнопку, которая появляется на 100-м кадре, надо, чтобы играл муви-клип (у которого на 1-м кадре стоит stop), и при этом основной музон надо остановить, и проигрывать snd2. Убрали мышь - опять играет основной музон.

Я спросил: актуален ли предложенный метод, если кадр не один, а много - кнопка находится дальше, чем кадр со скриптом. Я попробовал - у меня не работает.

А по звуку уже вопросов нет - с этим я разобрался. Просто похоже, придётся делать как-то по-другому. В хэлпе по этому поводу совета не нашёл. Думал, на форуме кто посоветует.

Kikasso 21.06.2007 19:39

В каком кадре кнопка появляется, в том и код на нее вешайте.

serdeles 21.06.2007 19:46

Но основной звук (snd1) должен начанаться с 7-го кадра. А кнопка - на 100-м кадре находится. Вот в чём заковыка.

serdeles 21.06.2007 19:59

К сожалению, не работает. Если кадр только один - всё фурычит великолепно - проверил. Но когда кадров много - не работает.

Вот код:
Код:

snd1=new Sound();
snd2=new Sound();
snd1.attachSound("guitarra");
snd1.onSoundComplete = function(){snd1.start(0);}
snd2.attachSound("pareja");
snd2.onSoundComplete = function(){snd2.start(0);}
mc.onRollOver=function(){
  snd1.stop();
  snd2.start();
}
mc.onRollOut=function(){
  snd2.stop();
  snd1.start();
}


serdeles 21.06.2007 21:28

Ладно, сделал так:

на 7-й кадр прицепил код:

Код:

snd1=new Sound();
snd2=new Sound();
snd1.attachSound("guitarra");
snd1.onSoundComplete = function(){snd1.start(0);}
snd2.attachSound("pareja");
snd2.onSoundComplete = function(){snd2.start(0);}
snd1.start();

Типа музыка начинается.

Потом в 100-й кадр (там, где у меня кнопка) вбил вот этот код:
Код:

snd1=new Sound();
snd2=new Sound();
snd1.attachSound("guitarra");
snd1.onSoundComplete = function(){snd1.start(0);}
snd2.attachSound("pareja");
snd2.onSoundComplete = function(){snd2.start(0);}

На саму кнопку (это вообще-то мувик с поведением кнопки) вписал это:
Код:

on (rollOver) {
        stopAllSounds();
        pareja.gotoAndPlay(2);
        snd2.start();
        }
on (rollOut) {
        pareja.gotoAndPlay(1);
        snd2.stop();
    snd1.start();
  }

Здесь pareja - это мувик, который надо играть со 2-го кадра при наведении на кнопку, так как на 1-м кадре у него стоит stop.

Всё ок. Но тока когда проверяю мувик (Test Movie). Когда открываю html файл - звуки куда-то деваются напрочь. не могу понять, почему. Вообще весь этот мув со звуком подгружается в более главный мувик (который индексовый). Никто не может подсказать, в чём может быть трабла? Может, в Linkage что надо изменить? Нет?

serdeles 21.06.2007 21:45

Уфф - всё. Разобрался. Просто в индексовый мувик положил в библиотеку нужные mp3 файлы. Теперь всё работает как надо. Всем спасибо за помошь, и что навели на правильные мысли :-)

Kikasso 22.06.2007 05:02

Там есть тонкий момент. Глобальные звуки иногда не срабатывают, не помню в каких условиях. Можно привязать звук к мувиклипу, например к корню:
Код:

snd1 = new Sound(_root);
А вообще для каждого звука хорошо создать отдельный клип.


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

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