decel.position)/1000;
9 }
10 decel.stop();
11 low_loop.stop();
12 playAccel(start);
13 }
14 }
15 if (playing =="accel"||playing ==null){
16 bar._yscale =accel.position/accel.duration*100;
17 if (Key.isDown(Key.DOWN)){
18 if (playing ==null){
19 var start =0;
20 }else {
21 var start =(decel.duration-
.accel.position)/1000;
22 }
23 accel.stop();
24 hi_loop.stop();
25 playDecel(start);
26 }
27 }
28 };
Приведенное выше событие onEnterFrame выполняет два основных условных блока в каждом кадре. Они проверяют разгоняется или тормозится автомобиль в данный момент. Если машина тормозится (строка 2), то клип bar (полоска уровня скорости) в сцене изменяется в размере для демонстрации того, что происходит. Этот клип ничего не делает с самими звуками; он лишь дает нам визуальное представление о происходящем. Затем скрипт проверяет, нажата ли стрелка вверх. Если да, то скрипт начинает воспроизводить звук с положения 0, или, если машина уже движется, вычисляет, какое смещение должен иметь звук. Смещение звука представляет собой переворот положения звука торможения. Если торможение равно по длительности 10 секундам и находится на третьей секунде, то смещение для ускорения равно 7 секундам. В строках 10 и 11 мы останавливаем звуки, которые могли бы воспроизводится, а в строке 12 запускаем звук торможения, вызывая функцию playAccel(). Второй блок if (строка 15) делает то же, что и первый, за исключением того, что он проверяет, разогнан ли автомобиль в данный момент. Если машина разогнана и нажата стрелка вниз, то воспроизводится звук торможения.
Создайте SWF из этого файла. Нажмите стрелку вверх. Вы должны услышать, как машина начинает ускоряться. Если вы позволите ускорению достигнуть максимума, то услышите что начал воспроизводиться цикл максимальной скорости, hi_loop. В любой момент вы можете нажать стрелку вниз для перехода на звук торможения. Если вы позволите торможению продолжаться до конца, будет воспроизводиться звук холостого хода, low_loop