Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Шрифт:
Ключевой кадр, следующий за «parti», содержит код:
gotoAndPlay («part3»);
Ключевой кадр, следующий за «part2», содержит код:
gotoAndPlay («part4»);
Ключевой кадр, следующий за «part3», содержит код:
gotoAndPlay («part2»);
Ключевой кадр, следующий за «part4», содержит код:
gotoAndPlay («part1»);
При запуске ролика из файла Nonlinear.fla на экране появляется надпись «PART 1». Затем ActionScript задает переход ролика не к кадру «part2», а к «part3». Таким образом, ролик переходит от надписи «PART 1» к «PART 3». Затем, после кадра «part3», ролик возвращается к «part2», а после него к «part4». Весь ролик воспроизводится в таком порядке: «PART 1», «PART 3», «PART 2» и «PART 4». Эта последовательность затем повторяется.
При помощи ActionScript
Урок 5. Создание кнопок для пользователя
Исходный файл: Stop.fla
В предыдущем примере мы рассмотрели возможность управления роликом при помощи ActionScript без всякого вмешательства пользователя. Давайте добавим несколько кнопок, щелкнув по которым, пользователь сможет запустить воспроизведение той или иной части ролика.
Предоставить пользователю больше контроля над воспроизведением ролика можно, прежде всего лишив этого контроля Flash. Flash начинает воспроизведение анимации с первого кадра, затем переходит к следующему и т. д. При помощи команды stop вы можете остановить воспроизведение анимации на первом кадре.
На рис. 2.7 изображен ролик из файла Stop.fla. Он состоит из четырех кадров, каждому из которых соответствует метка на временной шкале и текст на рабочем поле. В первый кадр включен небольшой сценарий с командой stop. Воспроизведение ролика начинается и заканчивается в кадре 1.
Рисунок 2.7. Данный ролик состоит из последовательности нескольких кадров, однако команда stop останавливает его воспроизведение на первом кадре
Теперь мы можем предоставить немного самостоятельности пользователю. Создайте простой эталон кнопки и поместите его на рабочий стол. Не следует выдумывать ничего необычного. В примере кнопка представляет собой маленький кружок.
Следующим вашим шагом будет создание нового слоя с одним кадром. Теперь в ролике будут участвовать одни и те же элементы. В данный слой мы поместили четыре различных копии одной и той же кнопки из библиотеки. Результат изображен на рис. 2.8.
В первом кадре данного ролика будет использоваться та же самая команда stop, которая остановит воспроизведение ролика сразу после его начала. В нижней части экрана размещены четыре кнопки. Каждой из них будет приписан отдельный сценарий. Первый сценарий изображен на рис. 2.8. Первая кнопка выбрана, и в окне ActionScript отображается ее сценарий:
on (press) {
gotoAndStop("part1");
}Так выглядит обычный сценарий кнопки. Поведение кнопки во время выполнения различных действий с ней задается программами-обработчиками. В нашем случае это действие press. Синтаксический элемент on обозначает начало программы-обработчика. В фигурные скобки заключаются команды реакции на события.
В нашем примере используется команда gotoAndStop – разновидность команды gotoAndPlay. В отличие от первой команды, задающей переход к новому кадру и остановку воспроизведения ролика, вторая команда переходит к другому кадру и запускает его воспроизведение.
Помимо этого сценария, три подобных приписаны трем другим кнопкам. Единственным их отличием является то, что они задают переход к кадрам "part 2", "part 3" и "part 4".Исходный
При запуске данного файла начинается воспроизведение ролика, остановленного в первом кадре. Теперь пользователь может щелкнуть по одной из четырех кнопок для перехода к одному из четырех оставшихся кадров. Попробуйте запустить ролик из файла Navigation.fla.
Это ваш первый настоящий Flash-ролик. Вместо простого текста "PART 1" – "PART 4", показываемого в каждом ключевом кадре, вы можете поместить презентацию наподобие той, которая создается в PowerPoint или других программах. Здесь демонстрируются возможности Flash, выходящие за рамки простой анимации.Урок 6. Анимация при помощи ActionScript
Исходный файл: Animate.fla
Теперь научимся перемещать предметы по рабочему полю при помощи ActionScript. Необходимо будет назначить клипу сценарий подобно тому, как мы сделали это для кнопки на нашем предыдущем занятии.
Сначала создайте новый ролик. Затем поместите клип на рабочее поле [5] . В примере Animate.fla на рабочее поле было помещено изображение лисы. Если хотите, нарисуйте что-нибудь более простое, например круг.
Вы можете поместить на рабочее поле экземпляр любого клипа, имеющегося в библиотеке. На данный момент наш фильм состоит из одного слоя и одного кадра, помещенного на рабочее поле (рис 2.9).
Рисунок 2.9. Ролик содержит клип и назначенный ему сценарий
Сценарий, назначенный клипу, использует программу-обработчик подобно сценарию кнопки в предыдущем занятии. Чтобы задать программу обработки, вместо командной строки on введите строку onClipEvent, которая определяет события для клипов ролика. В данном случае событие будет следующим: enterFrame. Это автоматическое событие, происходящее при каждом обращении к данному кадру [6] . Если ролик должен воспроизводиться со скоростью 12 кадр/с, оно должно посылаться в программу обработки 12 раз в секунду.
Подобно программе on(press) в сценарии кнопки, команды реакции на событие onClipEvent(enterFrame) заключаются в фигурные скобки.
В данной программе будет только одна команда, перемещающая клип на один пиксел влево. Давайте взглянем на сценарий и проанализируем, какие действия в нем выполняются.OnClipEvent(enterFrame) {
this._x – ;
}Команда this._x –, вероятно, будет совершенно непонятной для людей, не знакомых с языками программирования, поэтому разберем ее по частям.
Команда this обозначает обращение команды к объекту, который ее содержит. В данном случае this используется для обращения к клипу, которому назначен этот сценарий.
За командой this следует точка, обозначающая обращение к свойству объекта. В нашем примере _x относится к горизонтальному положению клипа.
Итак. this._x определяет горизонтальное положение клипа. Символ – является декрементом (командой уменьшения значения). Он уменьшает значение стоящей перед ней величины на 1 (пункт). Таким образом, команда this. _x – берет значение горизонтального положение клипа и вычитает 1, благодаря чему клип перемещается влево.
Если клип необходимо переместить вправо, используется команда ++, которая называется инкрементом (это команда увеличения значения). Если вы хотите переместить клип вправо или влево сразу на несколько пикселов, используйте соответственно += или -=:OnClipEvent(enterFrame) {
this._x -= 5;
}Данная команда переместит клип сразу на пять пикселов.
Урок 7. Возможность управления клипами пользователем
Исходный файл: Usercontrol.fla
А теперь давайте сделаем так, чтобы клип двигался вслед за курсором.
В предыдущем занятии мы узнали, как получить доступ к горизонтальной позиции клипа. При помощи параметра _y так же легко оперировать изменением координаты по вертикали. Теперь все, что нам нужно, – это привязать данные координаты к курсору.