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

Mnilionic 05.09.2007 15:07

Регулятор громкости
 
Регулятор громкости лучше делать на событие онМаусМув или с помощью сетИнтервала

онМаусМув - изменяет звук плавно
сетИнтервала - рывками и не всегда соответствует положению регулятора

У меня 15 объектов саунд, на которые действует общий регулятор громкости. То есть при каждом событии изменения громкости запускается цикл с перечислением всех объектов.

у меня сомнения по поводу оптимальности.
Я правильно делаю?

Wolsh 05.09.2007 16:36

Нет вообщето, создайте объект
Код:

var total_sound:Sound = new Sound(_level0);

Mnilionic 05.09.2007 20:33

что-то не работает. Расскажите подробнее.
У меня в руте есть массив из 15 объектов саунд.
Код:

var total_sound:Sound = new Sound(_level0);
total_sound.setVolume(10);

не на что не влияет.

Kikasso 05.09.2007 21:02

Намек:
Код:

snd1 = new Sound(_level0);
snd2 = new Sound(_level0);
snd1.setVolume(10);
trace(snd2.getVolume()); //10


Mnilionic 05.09.2007 21:21

вот убейте не работает у меня
Код:

global_volume = 10;
var global_sound:Sound = new Sound(_level0);
//
var SoundLib = new Object();
SoundLib.snd = new Array();
SoundLib.flag = new Array();
function soundLoad(key, file){
        SoundLib.snd[key] = new Sound(_level0);
        SoundLib.snd[key].onLoad = function(success:Boolean) {
                  if (success) {
                        trace(key+" - Загружено");
                            SoundLib.flag[key] = true;
                  } else {
                            trace(key+" - Загрузка не удалась");
                        SoundLib.flag[key] = false;
                  }
                // грузим следующий
                startLoading();
        }
        SoundLib.snd[key].loadSound(file, false);
}
// после всех загрузок вызывается done()
function done(){
        global_sound.setVolume(global_volume);
        mc_box._visible = true;
}


Kikasso 05.09.2007 22:34

В смысле не работает?

Mnilionic 05.09.2007 23:14

в смысле установка громкости global_sound в функции done не влияет на уровень громкости других объектов саунд в массиве SoundLib.snd

причём если изменять громкость объекта в массиве
SoundLib.snd["sound1"].setVolume(10);
то изменяется громкость только этого объекта.. всё остальные остаются на сотне по прежднему



если закоментировать строку загрузки звука
Код:

//SoundLib.snd[key].loadSound(file, false);
то при трассировки и впрямь громкость всех объектов становиться 10

А вот если загрузить в объекты звуки, то громкость изменяется только при обращении непосредственно к каждому объекту. Через родительский мувик или левел не пашет.

Wolsh 05.09.2007 23:34

Ну так Вы переменную в руте создаете, а обращаетесь из функции.
Пишите _root.global_sound.setVolume(10);
Да и global_volume лучше хранить в руте или глобале

Mnilionic 05.09.2007 23:41

Wolsh, здесь дело не с видимостью переменных, с ней все в порядке

Wolsh 06.09.2007 01:59

Посмотрел Ваш код внимательно и вообще ничего не понял. Вы привязываете global_sound к level0, потом начинаете грузить звуки и опять присваиваете их этому объекту... Не знаю, я не ас в таких хитросплетениях, но по-моему там всё неправильно в смысле логики. Имхо :)
А чтобы тупо управлять всеми звуками сразу, создается объект Саунд вообще без параметров.
var global_sound:Sound = new Sound();
Всё, можно регулировать. Всю жизнь этим пользуюсь, а что Вы там с загрузками намудрили, мне в жисть не разобраться.


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

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