Танцующая лиса
// Определяем время.
startTime
=
getTimer();
// Начинаем с шага 0.
danceStep
=
0
;
Клип "actions" вызывает функцию danceFrame, которая проверяет состояние последовательности танцевальных движений. Она вычисляет текущее время и сравнивает его со временем запуска следующего движения.
Когда это время наступает, функция проверяет, не является ли это движение командой stop. Если это так, то последовательность завершается. В противном случае клип "fox" переходит на соответствующий кадр, и переменная danceStер увеличивает свое значение на единицу.
// Вызывается при каждом обращении к кадру
// из клипа "actions".
function
danceFrame() {
// Вычисляем время.
thisTime
=
getTimer()
-
startTime;
// Проверяем момент запуска следующего движения.
if
(thisTime
>
=
danceArray[danceStep].time) {
// Определяем движение.
move
=
danceArray[danceStep].move;
// Если это "stop", возвращаемся в кадр "menu",
if
(move
=
=
"stop"
) {
gotoAndstop(
"menu"
);
}
else
{
// В противном случае отображаем движение танца.
fox.gotoAndPlay(move);
// Увеличиваем переменную.
danceStep
+
+
;
}
}
}
К сведению
Три кнопки в кадре "record", инициирующие танец, должны содержать сценарии для вызова функции danceButton. Вот пример для одной из кнопок:
on
(press) {
danceButton(
"dance1"
);
}
В кнопке Done должен содержаться сценарий для вызова функции stopRecord.
on
(press) {
stopRecord();
}
Клип "actions" в кадре "playback" содержит код, вызывающий функцию danceFrame при каждом обращении к этому кадру.
onClipEvent(enterFrame) {
_root.danceFrame();
}
Следует также назначить команду gotoAndstop каждой из кнопок главного меню. В первый кадр главной временной шкалы поместите команду stop(), чтобы остановить анимацию в начальный момент времени.
Другие возможности
В файле примера лиса, выполнив один раз выбранное пользователем движение, возвращается к основному танцу. Вы можете изменить программу таким образом, чтобы лиса повторяла выбранное движение до тех пор, пока пользователь не выберет новое. Этого можно достичь возвращением каждой последовательности кадров, отвечающей за определенное движение, к своей собственной метке вместо "dance()". В таком случае вам может понадобиться отдельная кнопка в кадре "record" для возвращения лисы к ее основному танцу.