Форум 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=102967)

bizz_gc 26.10.2007 14:26

Помогите со звуком!
 
Уважаемые знатоки!
На работе напрягли озвучить ролик. До этого с AS имел знакомство на уровне... на низком уровне. Так вот. Проблема: Есть фоновая музыка, есть кнопка, вкл и откл эту музыку. Есть голос, озвучивающий текст. Есть и для него кнопка.

Загрузка музыки

Код:

back_sound = new Sound(_root.back_snd);
back_sound.attachSound("back_sound");
back_sound.setVolume(10);
back_sound.start(0, 99999);

Загрузка голоса

Код:

a1_sound = new Sound(_root.a1_snd);
a1_sound.attachSound("a1");
a1_sound.setVolume(100);
a1_sound.start(0,1);

Код на кнопках

Код:

on (release) {
  if(s == 1){
    a1_sound.stop();
    s = 0;
  } else if(s == 0){
    a1_sound.start(0, 9999);
    s = 1;
  }
}

s - переменная, стоящая в отдельном слое

Код:

var s = 1;
Проблема в том, что при нажатии на любую из кнопок отключаеца весь звук. При повторном нажатии воспроизводится звук, за который отвечает кнопка...
Поможите чем можите...
С уважением.

Kikasso 26.10.2007 14:51

Код:

back_sound = new Sound(_root.back_snd);
У вас там запятая стоит, все звуки создаются с "опорой" на _root, и выключая один звук вы гасите все.
Разумеется, мувиклип клип _root.back_snd должен существовать.

bizz_gc 26.10.2007 14:55

Ой, спасибо.
Исправил, все равно не работает... вернее проблема остается...
Пробывал вводить разные переменные, тоже не помогает... чьёрт побьери.

Wolsh 26.10.2007 18:36

У меня ваш код работает так как Вам надо. Соотв., у Вас нет тех клипов, в которых Вы пытаетесь создать объекты Саунд - _root.a1_snd и его другана _root.back_snd. В ситуации, когда я эти клипы удаляю, и получается описанная Вами проблема. А теперь цитата из Kikasso:
Цитата:

Разумеется, мувиклип клип _root.back_snd должен существовать.

bizz_gc 26.10.2007 18:44

Спасибо, разобрался!

Kikasso 27.10.2007 00:59

Допустим вы написали
Код:

my_snd.setVolume(20);
Ситуация такова, что громкость установится не только данному звуку, но и всем звукам с "опорой" на тот же клип. Поэтому полезно звуки "раскидывать" по пустым клипам:
Код:

var back_sound:Sound = makeSound( _root, 'back_sound' );

function makeSound(mc:MovieClip, id:String ):Sound{
// создаем новый Sound в новеньком пустом клипе
 var snd:Sound = new Sound( mc.createEmptyMovieClip( '__' + id, mc.getNextHighestDepth() ) );
 snd.attachSound( id );
}

Я передал _root параметром, потому что клипы надо создавать в том swf, где библиотека со звуками. Если вы его подгружаете, то в нем и надо создавать клипы, и это уже будет совсем не _root


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

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