Форум 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();
Всё, можно регулировать. Всю жизнь этим пользуюсь, а что Вы там с загрузками намудрили, мне в жисть не разобраться.

Mnilionic 06.09.2007 02:21

Wolsh,
всё предельно просто в руте есть объект звука global_sound, который привязан к нулевому уровню.
так же в руте есть массив SoundLib.snd, в который агружаеся несколько звуковых обектов, и которые так же привязаня к нулевому уровню.
Звуки я гружу не из массива :) я из внешних файлов гружу звуки, а в массив они загружаются и лежат там как в библиотечке :)

из вашей подкаски я узнал, что если звуковые объекты привязану к одному клипу/уровню то все они имеют общий метод setVolume (то бишь изменяя громкость одного из звуков в клипе/уровне меняются все).


оо... сделал без параметрав и заработало - свершилось
Wolsh, спасибо за настойчивость :)

Wolsh 06.09.2007 02:43

Да всегда пожалуйста. Давить-то я мастак :)
Тут просто такая фишка. Саунд - это не звук. Звук на самом деле это... ну типа часть клипа такая. А Саунд - это только инструмент для управления звуком в данном клипе. Поэтому Вы можете 60 Саундов создать для одного клипа, если хотите - это не звук, а типа ссылка на него (на самом деле не так, но в некоторых проявлениях похоже). Т.е. каждый из них регулирует звук в клипе таком-то. Но звук привязан к клипу, а не к Саунду. Я могу повернуть ручку громкости, Вася может повернуть ручку громкости, и Петя с Катей могут повернуть. Все эти люди - Саунды. А звук просто в усилителе :)
Извините, если чем обидел. Удачи.


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

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