setVolume(vol);
9 decel.start(offset);
10 decel.onSoundComplete =decelDone;
11 playing ="decel";
12 }
13 function accelDone(){
14 accel.stop();
15 hi_loop.setVolume(vol);
16 hi_loop.start(0,100000);
17 }
18 function decelDone(){
19 decel.stop();
20 low_loop.setVolume(vol);
21 low_loop.start(0,100000);
22 }
Первая функция, playAccel(), используется для воспроизведения звука ускорения. Каждая из этих функций принимает параметр с именем offset, который используется для смещения начальной точки воспроизведения звука. Если продолжительность звука равна 10 секундам и смещение равно 3 секундам, то код ActionScript пропустит первые 3 секунды звука и начнет воспроизведение немедленно. В строке 4 мы устанавливаем обработчик события для звука ускорения. Когда этот звук завершает воспроизвидение, он вызывает функцию accelDone(). Это позволяет нам легко сказать, когда ускорение закончено, так что мы знаем, когда начать воспроизводить цикл звука максимальной скорости. В строке 7 следующая функция, playDecel(), воспроизводит звук торможения. Когда его воспроизведение закончено, она вызывает функцию decelDone(), так что может начать воспроизводиться цикл звука холостого хода. Эти события onSoundComplete происходят лишь, если звук может быть завершен. Если, например, звук ускорения остановлен прежде, чем он закончил воспроизводиться, то функция accelDone() не будет вызвана.
Заключительная часть кода ActionScript в этом файле перехватывает все действия пользователя и обрабатывает начало и остановку звуков, ставших результатом этих действий. Он также включает управление объектом bar, который не связан функционально со звуками.
1 _root.onEnterFrame =function(){
2 if (playing =="decel"||playing ==null){
3 bar._yscale =(1-decel.position/decel.duration)*100;
4 if (Key.isDown(Key.UP)){
5 if (playing ==null){
6 var start =0;
7 }else {
8 var start =(accel.duration-