Вход/Регистрация
Macromedia Flash Professional 8. Графика и анимация
вернуться

Дронов В. А.

Шрифт:

carSound.stop("engineSound");

Это выражение отключает воспроизведение звука engineSound, привязанного к клипу car.

Не принимающий параметров метод getVolume возвращает значение громкости звука. А метод setVolume позволяет задать новое значение громкости звука, переданное в качестве его единственного параметра. Доступны значения от 0 (звук не слышен) до 100 (полная громкость; значение по умолчанию).

carSound.setVolume(mySound.getVolume + 10);

Это выражение увеличивает громкость работы автомобиля на десять единиц.

Пара методов get Pan и set Pan ведут себя так же и позволяют задать панорамирование звука в пространстве. Здесь доступны значения от -100 (звук в левом канале) до 100 (звук в правом канале); значение по умолчанию — 0 (звук "посередине").

carSound.setPan(50);

Объект sound также поддерживает два свойства, доступные только для чтения. Свойство position возвращает текущую воспроизводимую позицию звука в миллисекундах. А свойство duration возвращает общую продолжительность звука, также в миллисекундах.

Использование таймеров

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

Таймер создается с помощью действия setinterval. Оно имеет два формата вызова. Вот первый из них:

<Переменная> = setinterval(<Функция>, <Значение интервала>

[, <Список параметров функции, разделенных запятыми>]);

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

А вот второй формат вызова действия setinterval:

<Переменная> = setintervai(<Экземпляр объекта>, <Метод объекта>,

<Значение интервала>

[, <Список параметров метода, разделенных запятыми>]);

Он отличается тем, что вместо функции здесь передается экземпляр какого-либо объекта и его метод.

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

Приведем примеры выражений, создающих таймеры:

timerlDl = setintervai(tick, 1000);

timerID2 = setintervai(car, moveBy, 100, d);

Первое выражение создает таймер, вызывающий функцию tick каждую секунду (1000 миллисекунд). Второе же создает таймер, вызывающий каждые 100 миллисекунд метод moveBy экземпляра объекта car и передающий ему параметр d. Разумеется, и функция tick, и метод moveBy должны быть объявлены прежде, чем будут использованы.

При использовании таймеров нужно иметь в виду следующее. Дело в том, что Flash отмеряет интервалы не очень точно. Он пытается привязать каждый интервал к частоте кадров фильма, если, конечно, это возможно. Если интервал меньше частоты кадров, то он обрабатывается с максимальной точностью, и код вызывается вовремя. Если же интервал больше частоты кадров, то код, связанный с таймером, исполняется только тогда, когда Flash воспроизводит очередной кадр фильма. Это сделано для того, чтобы лишний раз не перерисовывать экран, если код что-то изменит в изображении.

Если же нужно обновить экран прямо сейчас, следует вызвать не принимающее параметров действие updateAfterEvent. Оно часто используется при выполнении сценариев, изменяющих содержимое рабочего листа.

После того как нужда в таймере отпадет, его следует уничтожить, чтобы освободить системные ресурсы. Для этого используется действие clearinterval, которое имеет такой формат вызова:

clearinterval(<Идентификатор таймера>);

  • Читать дальше
  • 1
  • ...
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: