Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KA-16-Lek-P.doc
Скачиваний:
6
Добавлен:
14.09.2019
Размер:
407.04 Кб
Скачать

Установление граничных условий

Со всевозможными граничными условиями мы сталкиваемся в жизни постоянно. Границы могут быть разными – физическими, финансовыми, могут даже быть установлены внутри нашего сознания; в конечном итоге всякая граница – просто обозначение предела чего-либо. Давайте возьмем какой-нибудь пример граничных условий в действии. Представьте, что вы ведете автомобиль. Линии разметки на дороге представляют собой границы, внутри которых должен оставаться наш автомобиль. Если мы слишком приблизились к левой линии (левая граница), мы поворачиваем руль вправо, чтобы удержать машину в пределах дорожной полосы; если приближаемся к правой линии, поворачиваем руль в противоположную сторону – условная логика в действии! Если записать алгоритм наших действий на ActionScript, получится нечто вроде:

if (car._x > leftOfRoad) {

turnWheel ("right");

} else if (car < rightOfRoad) {

turnWheel ("left");

}

Чтобы установить граничные условия во Flash, нужно задать некие пределы, и затем использовать их в операторе if, который будет проверять ограничиваемый элемент всякий раз, когда наступает событие, в результате которого он мог бы выйти за установленные границы. По ходу выполнения следующего упражнения этот процесс станет для вас яснее ясного.

Граничные условия используются во Flash в следующих ситуациях:

  • Для предотвращения превышения свойствами экземпляра фильма-символа (x, y, alpha, xscale, yscale и т.п.) определенных значений

  • Для вызова действия (изменения значения свойства или метода) в ситуации, когда что-либо попадает внутрь установленных пределов или наоборот, выходит за пределы

  • Чтобы значения каких-либо данных не выходили за определенные пределы

Далее мы динамически анимируем красные полоски в верхней части экрана нашего проекта, представляющие собой "окно запуска", в которое должна попасть ракета, чтобы запуск считался успешным.

  1. Код для одной из двух красных полос в верхней части сцены:

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 раза в секунду данного скрипта – двух условных операторов – красные полосы будут постоянно находиться в движении, однако не смогут выйти за установленные пределы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]