Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
материал. часть2 / Розенцвейг_Adobe_Flash_Создание аркад, головоломок и других игр с помощью ActionScript.rtf
Скачиваний:
52
Добавлен:
11.02.2016
Размер:
9.87 Mб
Скачать

К сведению

Частота смены кадров ролика определяет скорость врашения спирали и смены цветов. Максимальная частота во Flash 8 – 120 кадр/с. Однако следует иметь в виду, что частота смены кадров напрямую зависит от быстродействия компьютера.

Другие возможности

Изменив оператор += на –= в последней строке кода, вы заставите спираль врашаться в обратном направлении. Вы можете также изменить способ смены цветов, изменив значения красной, зеленой и синей составляюших.

Случайность и эффект старого кино

Исходные файлы: Randomlocation.fla, Randommovement.fla, Oldfilm.fla

Используя Flash исключительно в качестве инструмента анимации, можно добиться поразительных эффектов, но каждый раз анимация будет воспроизводиться одинаково. ActionScript имеет алгоритм выбора случайных чисел, благодаря чему в содержание ролика можно вносить элемент некой непредсказуемости.

Задача проекта

Задача данного раздела – научиться использовать случайные числа для создания визуальных эффектов. Возможно, вы захотите создать «эффект старого кино», когда на изображении кое‑где появляются царапины и точки.

Подход

Во Flash MX сушествует два способа генерирования случайных чисел. Первый – включить в код функцию Random, которая была в четвертой версии программы. Эта функция выдает значение в диапазоне от 0 до значения, на единицу меньшего, чем аргумент. К примеру, функция Random(5) выдаст значение от 0 до 4.

Во Flash MX появилась функция Math.random(). Возможно, что в следующих версиях Flash функции Random уже не будет. Функция Math.random() выдает число с плаваюшей запятой от 0,0 до 1,0.

Чтобы получить значение вне диапазона [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. Эллипс перемешается по экрану случайным образом. Он даже может покинуть пределы рабочего поля, так как никаких ограничений в коде не задано.

Соседние файлы в папке материал. часть2