• Музыкальный миксер
• Танцующая лиса
В данной главе мы рассмотрим Flash-ролики, которые позволяют пользователю что-либо создавать. Подобные игрушки задействуют творческие способности человека. В них нет цели или счета, а только безграничные возможности пофантазировать.
Вначале мы создадим программу, позволяющую строить изображение из различных частей. Существует несколько разновидностей подобной программы. С одной стороны, пользователь может подставлять части к фиксированному объекту. С другой стороны, вы можете зафиксировать положение частей и предоставить пользователю возможность изменять форму каждой из них.
Затем мы создадим программу, предназначенную для рисования линий и фигур на чистом листе. И наконец, разработаем программу, которая будет составлять песни из различных музыкальных фрагментов.
Составь лису методом «Перетащи и положи»
Исходный файл: Makeafox-drag.fla
Многие компьютерные игры созданы по подобию игрушек докомпьютерной эры. Одна из таких старых игрушек – "Mister Potato Head" (Господин картофельная голова). Она представляла собой набор пластиковых частей тела, которые ребенок мог прикрепить к картошке и сделать смешного человечка. Позже вместо картошки стали использовать пластиковое туловище.
Задача проекта
Задача этого проекта – создать приложение, которое позволит пользователю присоединять части тела лисы к неподвижному туловищу и так составлять изображение зверька. Метод drag-and drop (перетащи и положи) должен быть знаком всем, кто умеет работать с компьютером.
Подход
Программа должна распознавать нажатие и отпускание кнопки мыши. Она должна определять, над каким клипом находится в данный момент курсор, и предоставлять возможность перетаскивания выбранного клипа при нажатой кнопке мыши.
Это не так легко, как кажется. Для того чтобы определить, какой клип выбрал пользователь, необходимо сравнить позицию курсора мыши с областью, занимаемой каждым клипом.
Подготовка ролика
Для создания игрушки-конструктора, работающей по методу drag-and-drop, прежде всего необходимо иметь различные графические изображения. На рис. 7.1 в правой части изображено туловище, в левой – различные изображения рук, ног, ртов и глаз.
Рисунок 7.1. Изображенные слева части тела можно переместить к расположенному справа туловищу
Ролик можно запустить, открыв файл Makeafox-drag.fla на Web-сайте. Вы можете выбрать любую часть тела и переместить ее в любую часть экрана.
Создание кода
Если вы уже работали во Flash, вы можете подумать, что это легко – необходимо просто использовать клипы частей тела и команды startDrag и stopDrag. На самом деле такой подход только все усложнит. Я не любитель команды startDrag и не буду использовать ее здесь, поскольку перемещать с ее помощью элементы по рабочему полю не так уж и просто.
Представив каждую часть тела в виде кнопки, вы можете назначить ей обработчик события on(press) и применить команду startDrag. Однако кнопка не может служить в качестве цели команды startDrag, такой целью может быть только клип. Если же вы представите их в виде клипов, им нельзя будет назначить функцию on(press), так как она используется только с кнопками. Еще одним вариантом является представление каждой части тела как клипа с кнопкой внутри. Здесь можно легко запутаться, так как каждый раз при добавлении в ролик новой части вам придется выполнить несколько действий.
Лучшим выходом будет написать код, выполняющий процедуру drag-and-drop самостоятельно. Отдельным частям не будет назначено никакого кода, благодаря чему их будет легко создавать и добавлять новые.
Весь код поместим в клип "actions", который как обычно находится вне, пределов рабочей области и содержит только надпись "Actions".
Данному клипу назначен сценарий ActionScript, управляющий перемещением всех элементов. Он должен включать несколько функций onClipEvent. Ниже приведено краткое описание событий и реакций на них, которые сценарий должен выполнять:
• load(загрузить) – задание переменной, указывающей, что никакого перемещения еще не происходит;
• mouseDown(кнопка мыши нажата) – определение выбранного элемента и создание переменной, сообщающей, что этот элемент перетаскивается. Определение смещения между местом, над которым нажата кнопка мыши, и центром выбранного элемента;
• mouseUp(кнопка мыши отпущена) – установка начальных параметров переменной, указывающих, что никакой элемент в данный момент не перетаскивается;
Читать дальше
Конец ознакомительного отрывка
Купить книгу