Чтобы получить значение вне диапазона [0..1], результат функции Math.Random можно умножить на какое-нибудь число. Например, умножение результата на 500 даст значение в диапазоне от 0,0 до 500,0. Функция int округляет результат в меньшую сторону. Использование этой функции в нашем случае позволит получить целое значение в диапазоне от 0 до 499. Приведем пример:
n = int(Math.random*500);
Следуюшая короткая функция перемешает клип в случайное место экрана, имеюшего размер 550x400.
onClipEvent(load) {
this._x = Math.random*550;
this._y = Math.random*400;
}Использование вышеприведенной функции демонстрируется в ролике Randomlocation.fla, который размешен на Web-сайте поддержки книги. Запустите файл несколько раз, чтобы убедиться, что ролик каждый раз перемешается в другое место экрана.
Следуюшим шагом является создание случайных чисел и их использование для периодичности внесения хаотичности в ролик.
Нижеприведенный сценарий перемешает клип в случайном направлении. Переменные dx и dy принимают значения в интервале от -5 до 5 и задают величину изменения координат клипа _x и _y соответственно (фактически dx и dy определяют скорость перемешения клипа). Переменные dx и dy изменяют свои значения в случайные моменты времени.onClipEvent(load) {
dx = Math.random*10-5;
dy = Math.random*10-5;
}
onClipEvent(enterFrame) {
this._x += dx;
this._y += dy;
if (Math.random > .9) {
dx = Math.random*10-5;
dy = Math.random*10-5;
}
}Действие этого сценария демонстрируется в ролике Randommovement.fla. Эллипс перемешается по экрану случайным образом. Он даже может покинуть пределы рабочего поля, так как никаких ограничений в коде не задано.
Подготовка ролика
В качестве примера использования случайных чисел создадим один из популярных Flash-эффектов: сымитируем старую кинопленку. Обычно данный эффект достигается средствами анимации. Аниматор помешает небольшие точки и трешинки в различные кадры ролика, а также показывает линию, проходяшую вдоль ролика и представляюшую царапину на пленке.
Все эти эффекты легко создать в ActionScript. К примеру, царапину можно создать, поместив вдоль одной стороны ролика белую вертикальную линию.
Для того чтобы применить знания о случайных числах, вам прежде всего необходимо какое-нибудь исходное изображение, на которое будут накладываться царапины и пятна.
На рис. 5.5 показан фрагмент исходного ролика. В этом ролике пропеллер самолета врашается, а лиса моргает. Возможно, ваш ролик будет содержать больше анимации.
Помимо фонового изображения вам понадобятся клипы пятен и царапин для размешения поверх ролика. В примере Oldfilm.fla царапина представляет собой простую вертикальную линию внутри клипа. Пятно – это небольшой овал внутри другого клипа.
Создание кода
Сначала напишем код для царапины. Поместите копию клипа царапины на рабочее поле и назначьте ему следующий сценарий: