91. Sound Part4. Трансформация звука. SoundTransform и SoundMixer

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/
Серия статей на тему использования звука(Sound) в приложениях ActionScript:
  1. Sound Part1. Создаем кнопку со звуком в Adobe Flash
  2. Sound Part2. Программное воспроизведение звука
  3. Sound Part3. Загрузка звука из внешнего файла (.mp3)
  4. Sound Part4. Трансформация звука. SoundTransform и SoundMixer
  5. Sound Part5. Программная генерация звука на лету (скоро)

В предыдущих уроках серии sound мы научились создавать звуки путем размещения на Timeline, научились управлять звуком программно и загружать из внешнего файла с помощью ActionScript. В этой статье мы поговорим о том, как можно трансформировать звук как программный так и расположенный на Timeline.

Для управления трансформацией звука в ActionScript 3.0 есть класс SoundTransform. Например что бы изменить громкость звука, можно воспользоваться следующим кодом:

FlashBuilderFlashIDE
Код для редактора Adobe FlashBuilder
Код для редактора Adobe Flash CS Professional

Объект класса SoundTransform необходимо передать в методе load класса Sound. Если вам необходимо изменить звук во время проигрывания, вы можете использовать свойство soundTransform класса SoundChanel. В следующем примере в процессе воспроизведения мы циклично меняем панораму звука слева направо и обратно, после клика на stage панорамирование прекращается:

FlashBuilderFlashIDE
Код для редактора Adobe FlashBuilder
Код для редактора Adobe Flash CS Professional

Вот как будет работать флешка:

Здесь должна быть флешка. Установите Flash Player

Объект класса SoundTransform имеет следующие свойства:

  • leftToLeft – Значение от 0 (нет) до 1 (все), указывающее, какая доля левого входа воспроизводится в левом динамике
  • leftToRight – Значение, от 0 (нет) до 1 (все), указывающее, какая доля левого входа воспроизводится в правом динамике
  • rightToLeft – Значение от 0 (нет) до 1 (все), указывающее, какая доля правого входа воспроизводится в левом динамике
  • rightToRight – Значение от 0 (нет) до 1 (все), указывающее, какая доля правого входа воспроизводится в правом динамике
  • pan – Панорамирование звука слева направо, в диапазоне от -1 (полная панорама слева) до 1 (полная панорама справа)
  • volume – Громкость от 0 (тишина) до 1 (полная громкость)

Трансформация звука на Timeline

В статье Sound Part1. Создаем кнопку со звуком в Adobe Flash я рассказывал как можно разместить звук на Timeline в редакторе Adobe Flash Professional. Это очень удобно, когда необходимо озвучить кнопку или анимацию игрового персонажа. Так вот что бы трансформировать такой звук, есть свойство soundTransform у объекта Sprite который содержит звук на Timeline. Если у вас звуки расположены на нескольких спрайтах, вы можете воспользоваться свойством soundTransform родительского спрайта, который содержит в себе все остальные спрайты со звуком на Timeline. В следующем примере мы загружаем swf файл в котором на Timeline расположен звук. При клике на stage звук плавно уменьшается до нуля. Не забывайте что MovieClip это наследник Sprite, поэтому все что я говорил про Sprite относится и к MovieClip :

FlashBuilder
Код для редактора Adobe FlashBuilder
Таким же способом можно трансформировать все звуки в приложении расположенные на Timeline, если использовать свойство soundTransform объекта stage. Имейте ввиду что трансформировать программный звук таким образом не получится. Что бы изменить все звуки приложения(программные и расположенный на Timeline) читайте далее.

Вот как выглядит флешка:

Здесь должна быть флешка. Установите Flash Player


Скачать исходники этого примера можно здесь. Fla файл загружаемой флешки timeline.swf получился очень тяжелым(50мб), поэтому я выложил его отдельным файлом timeline.fla

Глобальная трансформация всех звуков

Для изменени громкости звука во всем приложении, в коде ActionScript имеется класс SoundMixer со статическим свойством soundTransform. Чтобы глобально изменить громкость звука во всем приложении, воспользуйтесь следующим кодом:

Остановить проигрывание всех звуков в приложении можно с помощью метода stopAll();

Обратите внимание что метод SoundMixer.stopAll() останавливает только звуки, которые находятся в той же изолированной среде что и вызывающий объект. Т.е. если вы загружаете звуковой файл или флешку со звуком с другого домена, то для того что бы остановить звук методом SoundMixer.stopAll(), необходимо загрузить файл crossdomain.xml, указав параметр checkPolicyFile класса SoundLoaderContext. Подробнее про политику безопасности и класс SoundLoaderContext читайте в статье Sound Part3. Загрузка звука из внешнего файла (.mp3)
Серия статей на тему использования звука(Sound) в приложениях ActionScript:
  1. Sound Part1. Создаем кнопку со звуком в Adobe Flash
  2. Sound Part2. Программное воспроизведение звука
  3. Sound Part3. Загрузка звука из внешнего файла (.mp3)
  4. Sound Part4. Трансформация звука. SoundTransform и SoundMixer
  5. Sound Part5. Программная генерация звука на лету (скоро)

Да прeбудет с вами Flash.
Serious Sam
Эту статью прочитали 1553 раз

Возникли вопросы по статье? Не стесняйтесь спрашивать в комментариях или любым другим способом на странице Контакты .

Присоединяйтесь к нам в социальных сетях: ВКонтакте , Twitter и Facebook
Понравилась статья? Буду благодарен если вы поделитесь ссылкой с друзьями:


Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress: