Иллюстрированный самоучитель по Flash-games


Создание кода


Рассмотрим сценарий кадра "record". Он начинается с инициализации массива и определения времени начала записи.

// Определяем массив.

danceArray = new Array();

// Считываем текущее время.

startTime = getTimer();

Функция danceButton вызывается одной из трех кнопок, расположенных внизу экрана. Они определяют время и название танцевального движения и помещают эту информацию в массив. Они также дают команду клипу "fox" (его библиотечное имя - "dance") к исполнению движения.

// Пользователь нажимает одну из "танцевальных" кнопок,

function danceButton(moveName) {

// Промежуток времени, прошедший с начала проигрывания.
thisTime = getTimer() - startTime;

// Помещаем временной интервал и название движения в массив.

danceArray.push({time: thisTime, move: moveName});

// Показываем движение,

fox.gotoAndPlay(moveName);

}

Когда пользователь нажмет кнопку Done, движение "stop" будет помещено в массив и ролик перейдет к кадру "menu".

// Нажимаем кнопку Done.

function stopRecordO {

// Вычисляем временной интервал.

thisTime = getTimerO - startTime;

// Добавляем в массив.

danceArray.push({time: thisTime, move: "stop"});

// Возвращаемся в главное меню.

gotoAndStop("menu");

}

Рассмотрим сценарий кадра "playback". Он начинается с определения времени начала воспроизведения и присваивания переменной dance-step значения 0. Эта переменная содержит номер следующего в очереди танцевального па.

// Определяем время.
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++;

}

}

}




Начало  Назад  Вперед



Книжный магазин