Программное управление звуком во flash

В этой статье мы познакомим вас с программным управлением звуком при помощи языка AcrionScript. Flash иногда очень неадекватно воспринимает звуки, размещённые прямо во временной шкале, поэтому при создании больших мультов без программного управления не обойтись.

Мы рассмотрим:

создание звуковых объектов (объектов типа Sound);

привязку звуков к таким объектам;

управление воспроизведением звука;

динамическое изменение параметров звучания (громкость и панорамирование);

загрузку в объект Sound внешних .mp3 файлов.

Объект Sound появился в 5-й версии Flash, поэтому все приёмы, рассмотренные в статье, кроме загрузки внешних .mp3 файлов, могут быть использованы и в 5-й версии. Создание звуковых объектов

Начнём. Вы уже наверное догадались, чтобы производить какие-либо операции со звуком, нужно создать объект типа Sound. Сделать это очень просто. Существует стандартная конструкция soundObject = new Sound(target);

где soundObject - это имя создаваемого звукового объекта, а target - необязательный параметр, указывающий объект типа MovieClip, или уровень. Если мы хотим, чтобы наш звуковой объект работал только в одном MovieClip-е или на одном уровне, то мы должны его создавать с указанием данного параметра:

movieSound = new Sound("SomeClip"wink;

levelSound = new Sound("_level1"wink;

Если же планируется использовать объект в любом месте вашей флэшки, то он создаётся без параметров:

globalSound = new Sound();

Динамическое изменение параметров звука

Объект Sound позволяет динамически устанавливать уровень громкости и баланс (панорамирование) звука. Существуют также функции для получения значения баланса и громкости.

Для установки громкости звука используется функция setVolume(value). Параметр value может принимать значения от 0 (минимальный уровень) до 100 (максимальный уровень). По умолчанию уровень громкости равен 100.

Для установки баланса используется функция setPan(value). Здесь параметр value может принимать значения от -100 (весь звук в левом канале) до 100 (весь звук в правом канале). Значение 0 (оно стоит по умолчанию) означает, что звук равномерно распределён между обоими каналами.

globalSnd.setVolume(50); // Половинная громкость globalSnd.setPan(70); // Сместить звук по большей части в правый канал

Можно использовать функции getVolume() и getPan() для получения текущего значения громкости и баланса соответственно.

currentVolume = someSnd.getVolume(); currentPan = someSnd.getPan();

Можно одновременно устанавливать все параметры звука при помощи функции setTransform(), но мы её в данной статье не рассматриваем.