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

Выбор условий

В проекте может быть использовано много различных условий, управляющих работой приложения и взаимодействием с пользователем. Условия могут выглядеть поразному, но в основе всегда лежит одно правило: результатом условия может быть true либо false. Вот несколько примеров ситуаций, в которых обычно применяются условные операторы:

  • Один объект входит в контакт с другим объектом

  • Что-либо включается или выключается

  • Положение, размер или другое свойство фильма-символа достигает определенного значения (или становится больше этого значения, или меньше)

  • Пользователь выполнил определенные действия с мышью или клавиатурой

  • Сравнение двух числовых или текстовых значений

  • Различные комбинации перечисленных ситуаций

Рограммирование реакции на несколько условий

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

  1. Файл-пример rocketLaunch1.Fla из папки Lesson09/Assets.

Этот файл содержит единственную сцену из семи слоев, названных в соответствии с их содержанием. Давайте рассмотрим элементы сцены.

Слой Weather содержит экземпляр фильма-символа, размер которого такой же, как у всего фильма. Этот фильм-символ представляет в нашей сцене изображение неба. На его монтажном столе имеется три метки: Sunny, Rainy и Night/. На каждой из этих меток кадры содержат соответствующую фоновую картинку: на метке Sunny – ясная погода, на Rainy небо затянуто тучами, на Night небо темное, ночное.

Слой Ground/Central Graphics содержит изображение стартового поля и гор на заднем плане. Кроме того, в этом слое находится экземпляр фильма-символа в виде маленькой красной мигающей точки, отмечающей место запуска на глобусе.

Слой Rocket содержит, само собой, нашу ракету – экземпляр фильма-символа под именем rocket. На монтажном столе этого клипа две метки: off и on. На метке on ракета изображена с хвостом пламени, на метке off – без.

Слой Control Panel содержит несколько элементов, из которых прежде всего бросается в глаза красная кнопка запуска – Launch. Она, между прочим, будет не только запускать ракету, но и возвращать сцену в исходное состояние после каждой попытки запуска. Ниже этой кнопки расположен экземпляр фильма-символа под названием thrustBoost – он представляет собой надпись "Thrusters". У этого клипа тоже имеется две метки, on и off. На метке on надпись отображается буквами большими и красными – стало быть, ускорители ракеты включены. Последний элемент этого слоя – текстовое поле, расположенное в правом нижнем углу сцены, имя экземпляра – weatherText. Здесь будет отображаться текстовая информация о текущем состоянии погоды.

Слой Status содержит экземпляр фильма-символа по имени status; на сцене вы видите его, как маленький кружок посреди "неба". Он так выглядит потому, что в его первом кадре отсутствует какая-либо графика. На монтажном столе этого фильма-символа три метки: off, abort и success. На метке off клип выглядит так, как сейчас – то есть никак. На метке abort появляется надпись "Launch Aborted" (запуск не удался); на метке success – надпись "Launch Successful" (успешный запуск). Таким образом, этот клип отображает сообщение об успехе или неудаче попытки запуска.

В слое Guides находятся две красные полоски – ракета должна пройти через пространство между ними, чтобы запуск считался успешным.

Слой Sound Clips содержит экземпляр фильма-символа под названием sounds; в проекте он тоже показан в виде маленького кружка, в районе левого верхнего угла сцены. На его монтажном столе имеются метки intro, launch, abort и success. В кадры каждой из этих меток помещен соответствующий звуковой клип, иллюстрирующий вступление, запуск, неудачу и успех. Скрипты, отсылающие этот фильм-символ к той или иной метке, обеспечат звуковое сопровождение нашего проекта.

Приступим к написанию скриптов для проекта.

onClipEvent (load) {

randomWeather = random (3);

if (randomWeather == 0) {

conditions = "Sunny";

_root.rocket.noThrust = 3;

_root.rocket.thrust = 6;

} else if (randomWeather == 1) {

conditions = "Rainy";

_root.rocket.noThrust = 2;

_root.rocket.thrust = 4;

} else {

conditions = "Night";

_root.rocket.noThrust = 1;

_root.rocket.thrust = 2;

}

}

Этот скрипт будет выполняться при загрузке данного экземпляра фильма-символа. Первым действием присваивается значение переменной randomWeather – случайно выбранное число (из трех возможных: 0, 1 или 2). После этого оператор if начинает анализировать значение randomWeather, чтобы присвоить нужные значения трем другим переменным. Если randomWeather имеет значение 0, то на текущем монтажном столе (этого фильма-символа) создается переменная conditions, и ей присваивается строковое значение "Sunny". Кроме того, создаются две переменные на монтажном столе фильма-символа rocket: одна называется noThrust, другая – thrust; эти переменные получают значения 3 и 6 соответственно. Если же значение randomWeather не равно 0, то эта секция условного оператора игнорируется, и управление передается секции else if, которая проверяет значение randomWeather на равенство единице. Если условие выполняется, то создаются те же три переменные, но на этот раз они получают значения "Rainy", 2 и 4, соответственно. Если значение randomWeather не равно 1, то эта секция тоже игнорируется, и выполняются действия из секции else. Как вы помните, в секции else условного оператора помещаются действия, которые должны быть выполнены в том случае, если ни одно из условий предыдущих секций оператора не выполнено. У нас в секции else создаются все те же три переменные, только в этом случае они получают значения "Night", 1 и 2.

Переменной conditions мы вскоре воспользуемся для графического отображения на сцене различных погодных условий. Две другие переменные послужат для задания скорости движения ракеты (экземпляра rocket) в зависимости от погоды.

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