Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Шрифт:
На Web-странице, в библиотеке файла под названием Mcplayback.fla, находится клип "myMovieClip". Этот клип состоит из 10 кадров, промаркированных для того, чтобы вы знали, какой кадр клипа воспроизводится в данный момент.
Перетащив клип из библиотеки на рабочее поле, вы создадите его копию, которой можно и даже нужно присвоить имя. Для этого используйте панель Properties (Свойства), изображенную на рис. 3.1.
Рисунок 3.1 . В панели Properties
Совет
Вы наверняка заметили, что копия клипа имеет такое же имя, как и клип в библиотеке. Обычно это делается при создании одной копии клипа. Имя копии легче запомнить, если оно совпадает с именем объекта библиотеки.
Библиотека ролика, рассматриваемого в примере, также содержит пять кнопок. Они помещены на рабочее поле под копией клипа. Присваивать имена копиям кнопок необязательно, впрочем, вы и не сможете этого сделать. В любом случае код не может ссылаться на кнопку, поэтому в имени нет необходимости.
После добавления клипа и пяти кнопок рабочее поле будет иметь примерно такой вид, как показано на рис. 3.2. Кнопки не только выглядят, но и используются как кнопки управления видеомагнитофоном.
Рисунок 3.2 . Кнопки позволяют контролировать воспроизведение клипа
Пять кнопок позволяют полностью контролировать клип. Кнопка Play (Воспроизведение) запускает воспроизведение ролика. При достижении конца клипа воспроизведение начинается снова с первого кадра. Кнопка Stop (Стоп) останавливает воспроизведение ролика в текущем кадре. Кнопка Rewind (Перемотать) возвращает клип к первому кадру. Кнопки Previous (Предыдущий) и Next (Следующий) продвигают клип на один шаг соответственно назад или вперед. Прежде чем передать контроль над клипом пользователю, необходимо остановить клип. Обычно клипы запускаются сразу же после своего появления на рабочем поле. Чтобы предотвратить это, в первый кадр главной временной шкалы был помещен следующий сценарий, останавливающий анимацию клипа, а также сам ролик:
myMovieClip.stop; stop;
Точка в первой строке сценария показывает, что функция stop будет выполнена для копии клипа «myMovieClip». Вторая строка не содержит имени копии, поэтому команда выполняется в месте расположения сценария – в данном случае в главной временной шкале. В сценариях для кнопок команды клипу посылаются также при помощи точки. Вот сценарий кнопки Play, задающий воспроизведение клипа:
on (press) {
myMovieClip.play;
}Кнопка Stop посылает клипу команду stop:
on (press) {
myMovieClip.stop;
}Кнопка Rewind задает переход клипа к первому кадру и его остановку. Это действие выполняет команда gotoAndStop с параметром 1.
on (press) {
myMovieClip.gotoAndStop(1);
}Кнопки Previous и Next перемещают клип на один кадр вперед или назад. Эти действия выполняются при помощи команд prevFrame и nextFrame:
on (press) {
myMovieClip.prevFrame;
}
on (press) {
myMovieClip.nextFrame;
}Хотя целью данного урока было научить вас управлять воспроизведением клипов, вы можете использовать данный пример как руководство для воспроизведения
Урок 16. Управление свойствами клипа
Исходный файл: Mcproperties.fla
Вы можете не только контролировать содержание клипа, но и задавать его внешние свойства. Например, управлять его положением, вращением и масштабом.
В примере Mcproperties.fla в центре экрана находится клип с изображением лисы. И рисунок в библиотеке, и копия клипа имеют имя "fox".
Кроме этого, вокруг изображения лисы расположено восемь кнопок. Каждая из них задает свойство клипа. Внешний вид экрана показан на рис. 3.3. Первые три кнопки имеют названия Left (Левая), Middle (Средняя) и Right(Правая).
Рисунок 3.3. При помощи кнопок, расположенных вокруг клипа «fox», можно изменить его положение, масштаб и повернуть его
В уроке 6 «Анимация при помощи ActionScript» мы узнали, что переменная _x используется для описания горизонтального положения клипа на рабочем поле. Эта переменная и будет использоваться кнопками Left, Middle и Right. Они могут использовать и переменную _у для описания вертикального положения клипа, однако в данном примере это не требуется. Приведем код кнопки Left. Он задает горизонтальное положение рисунка равным 200, то есть размещает его немного слева от центра при условии, что ширина ролика составляет 550 пикселов. Кнопки Middle и Right отличаются только значением переменной _x.
on (press) {
fox._x = 200;
}Для изменения масштаба клипа используются переменные _xscale и _yscale. В случае, если переменные имеют одинаковые значения, масштаб клипа будет изменяться пропорционально. Значение 100 соответствует масштабу 100 %.
Совет
Значения переменных _xscale и _yscale можно задавать отдельно друг от друга. Они могут быть разными, при этом клип станет более тонким или более плоским.
Ниже приведен сценарий кнопки «50 %». Две другие кнопки масштабирования используют аналогичный код, но с другими значениями.
on (press) {
fox._xscale = 50;
fox._yscale = 50;
}Для вращения клипа используется переменная _rotation. Значение переменной задается в градусах, при этом 0 равен 360. Вы можете задать значение больше 360 или меньше 0, однако Flash преобразует их в показания между 0 и 360. Далее приводится сценарий кнопки Tilt (Наклон). Она поворачивает клип на 30° по часовой стрелке. Кнопка Straight (Прямо) возвращает клип в положение 0°.
on (press) {
fox._rotation = 30;
}Используя эти переменные в более сложных сценариях, рассматриваемых далее, вы сможете перемещать клип по рабочему полю, что необходимо для создания игр различных типов.
Урок 17. Применение метода «Перетащи и положи» к клипам
Исходный файл: Dragsimple.fla
Важным свойством интерфейса, будь то игра или приложение, является возможность перетаскивать элементы по экрану. Во Flash это можно сделать несколькими способами. Мы рассмотрим три из них.