8
фев
  Плавное включение/выключение звука во Flash 0 баллов
 

Урок по включению/выключению звука в Flash


В этом уроке речь пойдёт о том, как организовать плавное включение/выключение звука во Flash. Опять же, просто нужно знать, какие методы использовать в вашей флешке. Основными методами урока будут getVolume() и setVolume(number), с помощью которых можно узнать текущее и установить новое значение громкости для Sound объекта в Flash.

Как же это всё организовать в флешке?


Для начала давайте разберём в двух словах, как это всё работает. Первым делом нужно понять, что «плавное» — это означает не мгновенное, а постепенное изменение какого-то свойства, в данном случае громкости. Таким образом, нам нужно будет не сразу изменить значение громкости на 0, если мы выключаем звук, а создать функцию, которая бы при вызове уменьшала значение громкости на какое-то число, и вызывать эту функцию до того момента, пока громкость не упадёт до нуля. Я не буду разбирать в этой статье, как во Flash создаются Sound объекты, т.к. об этом вы можете прочитать в статье «Учимся работать со звуком».

Необходимые функции:


function soundOn_func(varDelta:Number) {
        _root.s_sound.setVolume(_root.s_sound.getVolume()+varDelta);
        if (_root.s_sound.getVolume()>=100) {
                clearInterval(_root.sound_int);
                _root.s_sound.setVolume(100);
        }
}

1. soundOn_func — имя функции, которая будет постепенно увеличивать громкость звука в Flash;
2. varDelta — число, на которое каждый раз при запуске функции будет увеличиваться громкость Sound объекта. Конечно, его можно было бы задать и вручную без всяких переменных, но такой способ, когда в теле функции прописывают необходимую переменую и потом с ней работают, гораздо более гибкий;
3. setVolume(_root.s_sound.getVolume()+varDelta) — здесь мы непосредственно прибавляем к текущему значению громкости переменную varDelta. setVolume(number) — это функция, которая устанавливает значение громкости звука для Sound объекта в Flash. Функция getVolume() возвращает нам текущее значение громкости звука. Запомните, что громкость может изменяться от 0 до 100, где 0 — звук выключен полностью, а 100 — максимальная громкость. Так же нужно запомнить, что если громкость будет ниже 0, то звук будет слышен, причём, чем дальше от 0 будет значение, тем громче он будет.

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

_root.sound_int = setInterval(_root.soundOn_func, 50, 10);

1. _root.sound_int — переменная интервала, по которой потом к можно будет обращаться к интервалу;
2. _root.soundOn_func — имя функции, которая будет вызываться с определённым интервалом;
3. 50 — время, через которое будет вызываться функция. Указывается в миллисекундах (0.001 сек.). Означает, что функция будет вызываться 20 раз в секунду (1000/50=20);
4. 10 — передаваемая в вызываемую функцию переменная. У нас это, если вы ещё не забыли, переменная varDelta.

Вот, собственно, всё и готово к использованию, если у объекта s_sound громкость будет меньше 100, то при вызове функции его громкость будет постепенно увеличится, если громкость будет равна 100, то громкость будет постепенно уменьшаться.

Сама флешка » | Архив »

Комментарии (4)   Автор: admin
Комментарии
remen
10.04.09 | 11:06
0 баллов

пригодится)

Ju
09.06.09 | 23:47
0 баллов

Странно но почему не работает если флешку аттачить?

admin
10.06.09 | 16:37
0 баллов

Скорее всего потому, что в примере, который выложен на сайте пути к звукам и функциям прописаны через _root, а когда флешку подгружают, её _root становится ссылкой на _root клип-контейнера, а не подгружаемой флешки. Почитайте в хелпе про _lockroot, возможно это поможет решить проблему.

Ju
10.06.09 | 23:12
0 баллов

Не я пытаюсь переделать на относительный путь(через this) а _lockroot не подходит в данном случае

 
 
 
 

Последние комментарии

Полезные ссылки

Реклама сайтов

HO 1:87
Полезные рекомендации для подготовки к TOEFL PBT
Сейчас стали доступными и проститутки в машине - советуем попробовать.
Имплантация зубов и имплантология в Стоматологии.