Дострочное пересдача экзамена
|
Использование условной логики
Условная логика – важнейший компонент интерактивных приложений. Именно на этом основано "разумное" поведение программ – та или иная реакция в зависимости от перемещения или положения указателя мыши, текущего дня недели, многих других динамических условий, возникающих в процессе воспроизведения фильма. С помощью условной логики вы сможете перейти от простого линейного воспроизведения презентаций и анимаций к динамическим проектам, поведение которых будет зависеть и от пользователя, и от разных внешних обстоятельств.
В этом уроке мы познакомим вас со способами применения логических условий, рассмотрим приемы, с помощью которых можно заставить фильм реагировать на обстоятельства.
Что будет изучаться
В этом уроке:
- Управление последовательностью выполнения скриптов при помощи операторов if, if/else, if/else if
- Операторы, применяемые в условной логике, их назначение и возможности
- Какие условия могут возникать в фильме
- Программирование реакции проекта на те или иные обстоятельства
- Программирование ограничений перемещения объекта
- Разрешение и запрет выполнения блока программы с помощью условной логики
- Программирование взаимодействия проекта с пользователем
- Выявление столкновений объектов
Успешный запуск ракеты зависит от многих обстоятельств. Проект этого урока продемонстрирует вам некоторые принципы и приемы использования условной логики.
Время выполнения
На выполнение этого урока требуется примерно один час.
Файлы урока
Файлы-носители:
Нет
Стартовые файлы:
Lesson09/Assets/rocketLaunch1.fla
Законченные проекты:
rocketLaunch6.fla
Управление последовательностью выполнения скриптов
Обычно скрипты выполняются по порядку, строка за строкой, от начала до конца. С помощью условной логики можно управлять скриптами, разрешая выполнять определенные действия только в том случае, если выполняется некоторое условие. Таким образом, ваши фильмы смогут "жить своей жизнью", принимая решения и реагируя в зависимости от обстоятельств. Для реализации в скриптах условной логики служат условные операторы.
Оператор if.
Ядром всей условной логики в ActionScript является конструкция "если – то", реализуемая (в различных вариациях) оператором if. Давайте рассмотрим такой пример:
if (moneySaved > 500) { buyStuff(); } // дальнейшие действия…
В этом скрипте функция buyStuff() вызывается, только если переменная moneySaved имеет значение, большее 500. Если значение moneySaved меньше или равно 500, вызов функции buyStuff() игнорируется и выполнение скрипта продолжается действиями, следующими за оператором if.
В приведенной конструкции условный оператор проверяет, выполняется ли условие (то, что заключено в круглые скобки). Если выражение в скобках дает результат true (истинно), действия в теле оператора (внутри фигурных скобок) выполняются, если false (ложно) – они игнорируются. В общем, синтаксис условного оператора расшифровывается так:
if (это – истина) { Делать это; }
Как и в реальной жизни, порой оператор if, прежде чем предпринять действие или набор действий, должен проверять сразу несколько условий. Вот пример.
if (moneySaved > 500 && billsPaid == true) { buyStuff(); }
Здесь в выражении условия появился еще оператор И ( && ), так что функция buyStuff() будет вызвана только в том случае, если переменная moneySaved имеет значение, большее 500 и billsPaid равно true. Если хотя бы одно из этих утверждений ложно, вызов buyStuff() игнорируется. Другой вариант конструкции из двух условий связан с применением оператора ИЛИ ( || ). Вот пример:
if (moneySaved > 500 || wonLottery == true) { buyStuff(); }
Здесь функция buyStuff() будет вызвана в том случае, если переменная moneySaved больше 500 или wonLottery имеет значение true, то есть требуется выполнение хотя бы одного из двух утверждений.
Эти операторы можно применять вместе, создавая изощренные условные выражения вроде этого:
if (moneySaved > 500 && billsPaid == true || wonLottery == true) { buyStuff(); }
В этом скрипте функция buyStuff() будет вызвана в том случае, если переменная moneySaved больше 500 и billsPaid равно true, или если wonLottery имеет значение true.
Далее приведен общий список операторов (их называют операторами сравнения), применяемых при построении логических выражений, с кратким описанием и примерами.
Совет Распространенная ошибка – при проверке на равенство ставить одиночный знак ( = ) вместо сдвоенного ( == ). Помните, что одиночный знак равенства обозначает оператор присвоения (например, money = 300 – "присвоить переменной money значение 300"). Сдвоенный знак равенства ( money == 300 ) обозначает оператор сравнения, он ничего не присваивает, а лишь проверяет, равны ли значения слева и справа от него.
Совет Со сравнением чисел все просто – в конце концов, каждый понимает, что 50 меньше 100, другое дело – сравнение текстовых значений. Строка "Derek" отнюдь не равна строке "derek", хотя, казалось бы, слово одно и то же. В текстовых значениях буква A, например, "меньше", чем буква Z, и все заглавные буквы "меньше", чем строчные. Латинская буква A имеет внутреннее представление (числовой код) 1, а буква z – 52 (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz).