Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Шрифт:
Уровни клипа
Еще одной распространенной проблемой является место расположения переменной. Например, если переменная включена в сценарий, назначенный клипу, она будет находиться на уровне этого клипа, а не на уровне главной временной шкалы. Для обращения ко всем переменным вашего ролика используется точечный синтаксис, однако место расположения переменной можно легко забыть.
Нижнее подчеркивание
Небольшой ошибкой является пропуск нижнего подчеркивания (_) перед большинством встроенных параметрово Flash. Допустим, у вас есть клип под названием «myMovieClip». Тогда myMovieClip._x будет обозначать его горизонтальное положение, но myMovieClip.x – просто переменную х внутри
Splice и Slice
Еще одна ошибка – случайное использование в массиве функции slice вместо функции splice, предназначенной для удаления элемента массива. Пропущенное "р" может ускользнуть от вашего взгляда, а разница выполняемых функций приведет к возникновению ошибок.
Глобальные и локальные переменные
Имейте в виду, что если перед первым использованием переменной в функции не стоит ключевое слово var, то переменная является глобальной. В случае использования аналогичного имени переменной в другом месте функции ее значение может заменить значение предыдущей переменной. Допустим, вы используете переменную i в цикле for, а затем внутри данного цикла вызываете другую функцию, которая использует переменную i для своего цикла for. В таком случае значения переменных будут наложены друг на друга. Для того чтобы избежать этого, используйте разные имена переменных или синтаксическую структуру var.
Вы узнали много об ActionScript из глав 2 и 3, а также об общих приемах программирования из данной главы. Теперь вы готовы перейти к главе 5 "Создание дизайнерских эффектов при помощи ActionScript" и далее, к более сложным примерам программ на ActionScript.
Глава 5 Создание визуальных эффектов
• Увеличение кнопок
• Вращающаяся и изменяющая цвета спираль
• Случайность и эффект старого кино
• Перемещение букв
• След от курсора
• Эффект трехмерности
Большинство глав данной книги описывают игры. Несмотря на то, что игры интерактивны, прежде всего мы рассмотрим Flash-ролики, которые обладают минимальной интерактивностью или вообще ее не имеют. Эти неинтерактивные ролики напоминают простые Flash-анимации, но создаются при помощи ActionScript.
В данной главе также рассматривается несколько простых примеров действующего ActionScript-кода. Хотя многие замечательные эффекты могут быть созданы только при помощи анимационных приемов Flash, Action-Script также способен на многое.
В данной главе вы научитесь оперировать графическими изображениями и цветами, изменять текст, а также перемещать элементы по рабочему полю.Увеличение кнопок
Исходный файл: Expandingbuttons.fla
Многие сайты используют Flash для навигации от страницы к странице. Даже простой Flash-ролик с одной кнопкой может значительно оживить статическую Web-страницу. При помощи ActionScript вы сможете сделать эти кнопки анимированными.
Задача проекта
Задача проекта – создать кнопки, которые в случае, если подвести к ним курсор мыши, не меняют цвет, а увеличиваются и затем, когда курсор убран, возвращаются к нормальному размеру. На рис. 5.1 изображено пять подобных кнопок, курсор расположен над второй из них.
Рисунок 5.1 . Если поместить курсор мыши над кнопкой, она увеличивается
Взглянув на рисунок, можно подумать,
Подход
Каждая кнопка реагирует на наведение и снятие курсора. При наведении курсора на кнопку обработчик получит новое значение масштаба. Если в начальный момент времени масштаб клипа (с кнопкой внутри) составляет 100 %, то новое значение будет, например, 150 %.
С каждым кадром сценарий будет постепенно изменять текущий масштаб: от 100 % до 150 % с шагом 10 %.
После того как пользователь уберет курсор с кнопки, эффект будет обратным. Новое значение будет равно 100 %, и с каждым кадром кнопка будет уменьшаться на 10 %, пока не достигнет этого значения.Подготовка ролика
Ролик содержит несколько кнопок. Каждая кнопка представляет собой отдельный ролик с кнопкой внутри. Из одного библиотечного эталона кнопки я создал пять разных клипов. В каждый клип поместил одну и ту же кнопку, но разный текст.
Кнопка может иметь любую форму и цвет. Я использовал классический стиль, поскольку хотел просто продемонстрировать работу сценария.
Создание кода
В ролике используется два типа сценариев: назначенные кнопкам и назначенные клипам. Первый тип сценария назначен кнопке, находящейся в клипе. Сценарий, назначенный кнопке, реагирует на события мыши, происходящие именно с этой кнопкой. Такие сценарии – обработчики событий – мы уже рассматривали в уроке 6 главы 2, они реагируют на различные события и в случае кнопки задаются конструкцией on (<событие>) { … }.
Сценарий кнопки включает три различных обработчика, двумя из которых являются on(rollOver) и on(rollOut). Они устанавливают значение переменной newscale равным новому масштабу для увеличения или уменьшения кнопки.
Ниже приведен сценарий для кнопки "Home".
on (rollOver) {
// Задаем новый размер для увеличения.
newscale = 150;
}
on (rollOut) {
// Задаем новый размер для уменьшения.
newscale = 100;
}
on (release) {
// Код, исполняемый при нажатии на кнопку.
trace("Home");
}Примечание
С помощью конструкции on в сценарии кнопок вводятся фрагменты кода, выполняемые после определенных событий. Такими событиями могут быть press, release, releaseOutside, rollOver, dragOver, dragOut и keyPress.
Каждый из трех обработчиков в вышеприведенном листинге содержит строку кода, выполняемого после определенного события кнопки. Например, когда пользователь нажимает и отпускает кнопку, выполняется команда trace. При этом слово «Home» помещается в окно Output.
На самом деле в таких случаях обычно используется команда getURL, которая сообщает браузеру, что нужно перейти к новой странице. Команда trace приведена здесь только в качестве примера.
Переменная newscale является индивидуально задаваемой переменной и используется для хранения значения задаваемого масштаба клипа. Когда пользователь наводит курсор мыши на кнопку, ее размер увеличивается до 150 %. Когда он убирает курсор с кнопки, размер возвращается к 100 %.
Сценарий клипа помещается на один уровень выше, чем сценарий кнопки. На диаграмме (рис. 5.2) изображена главная временная шкала, клип, содержащий кнопку, а также два сценария.