
- •Время выполнения
- •Управление последовательностью выполнения скриптов
- •Оператор if.
- •Оператор if/else if
- •Оператор if/else
- •Другие условные операторы
- •Выбор условий
- •Рограммирование реакции на несколько условий
- •Файл-пример rocketLaunch1.Fla из папки Lesson09/Assets.
- •Установление граничных условий
- •Код для одной из двух красных полос в верхней части сцены:
- •Включение/Выключение
- •После предыдущего скрипта поместите следующий:
- •Скрипт кнопки Launch:
- •После предыдущего скрипта добавьте следующий:
- •Реакция на действия пользователя
- •Скрипт для-символа rocket:
- •После предыдущего скрипта добавляется следующий:
- •Выявление столкновений объектов
- •Скрипт для одной из красных полос:
- •Для второй красной полосы добавляется такой же скрипт, как и к первой.
Установление граничных условий
Со всевозможными граничными условиями мы сталкиваемся в жизни постоянно. Границы могут быть разными – физическими, финансовыми, могут даже быть установлены внутри нашего сознания; в конечном итоге всякая граница – просто обозначение предела чего-либо. Давайте возьмем какой-нибудь пример граничных условий в действии. Представьте, что вы ведете автомобиль. Линии разметки на дороге представляют собой границы, внутри которых должен оставаться наш автомобиль. Если мы слишком приблизились к левой линии (левая граница), мы поворачиваем руль вправо, чтобы удержать машину в пределах дорожной полосы; если приближаемся к правой линии, поворачиваем руль в противоположную сторону – условная логика в действии! Если записать алгоритм наших действий на ActionScript, получится нечто вроде:
if (car._x > leftOfRoad) {
turnWheel ("right");
} else if (car < rightOfRoad) {
turnWheel ("left");
}
Чтобы установить граничные условия во Flash, нужно задать некие пределы, и затем использовать их в операторе if, который будет проверять ограничиваемый элемент всякий раз, когда наступает событие, в результате которого он мог бы выйти за установленные границы. По ходу выполнения следующего упражнения этот процесс станет для вас яснее ясного.
Граничные условия используются во Flash в следующих ситуациях:
Для предотвращения превышения свойствами экземпляра фильма-символа (x, y, alpha, xscale, yscale и т.п.) определенных значений
Для вызова действия (изменения значения свойства или метода) в ситуации, когда что-либо попадает внутрь установленных пределов или наоборот, выходит за пределы
Чтобы значения каких-либо данных не выходили за определенные пределы
Далее мы динамически анимируем красные полоски в верхней части экрана нашего проекта, представляющие собой "окно запуска", в которое должна попасть ракета, чтобы запуск считался успешным.
Код для одной из двух красных полос в верхней части сцены:
onClipEvent (enterFrame) {
if (_x < 0) {
direction = "right";
} else if (_x > 550) {
direction = "left";
}
if (direction == "right") {
_x = _x + 3;
} else {
_x = _x - 3;
}
}
Очевидно, что обе красные полосы являются частью экземпляра фильма-символа, к которому мы и присоединяем этот скрипт. В скрипте использовано два оператора if, при помощи которых экземпляр перемещается влево и вправо. Скрипт привязан к обработчику события enterFrame, а это значит, что он будет выполняться 24 раза в секунду (такова частота кадров нашего фильма).
В первом условном операторе анализируется позиция данного клипа, с тем, чтобы выяснить, не вышел ли он за левую или правую границу. Если горизонтальная координата экземпляра меньше 0 (то есть его центр ушел за левый край сцены), переменной direction присваивается значение "right". В противном случае, если горизонтальная координата больше 550 (центр клипа вышел за правый край сцены), direction получает значение "left". Таким образом, значение переменной direction меняется только в том случае, если произошел выход за одну из границ. Значит, экземпляр клипа будет постоянно двигаться, как предписывает ему второй оператор if. А он говорит, что если direction имеет значение "right", то горизонтальная координата экземпляра увеличивается на 3 – клип перемещается вправо. В противном случае (else; если direction имеет значение "left") горизонтальная координата экземпляра у меньшается на 3, и клип перемещается влево. Таким образом, в результате выполнения 24 раза в секунду данного скрипта – двух условных операторов – красные полосы будут постоянно находиться в движении, однако не смогут выйти за установленные пределы.