KnigaRead.com/

В. Дронов - Macromedia Flash Professional 8. Графика и анимация

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн В. Дронов, "Macromedia Flash Professional 8. Графика и анимация" бесплатно, без регистрации.
Перейти на страницу:

В общем, основной принцип выполнения всех операторов таков: сначала выполняются операторы с более высоким приоритетом, а уже потом — операторы с более низким. Операторы с одинаковым приоритетом выполняются в порядке их следования (слева направо).

В табл. 19.9 перечислены все изученные нами операторы в порядке убывания их приоритетов. Полную таблицу приоритетов можно найти в интерактивной справке Flash.

Внимание!

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

Но что делать, если нам нужно нарушить обычный порядок выполнения операторов? Воспользуемся скобками. При такой записи заключенные в скобки операторы выполняются первыми.

а = (b + с) * 10;

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

Операторы, заключенные в скобки, также подчиняются приоритету. Поэтому часто используются многократно вложенные скобки:

а = ((b + с) * 10 — d) /2 + 9;

Здесь операторы будут выполнены в такой последовательности:

1. Сложение b и с.

2. Умножение полученной суммы на 10.

3. Вычитание d из произведения.

4. Деление разности на 2.

5. Прибавление 9 к частному.

Если удалить скобки:

a=b+c*10-d/ 2 + 9;

то порядок выполнения операторов будет таким:

1. Умножение с и 10.

2. Деление d на 2.

3. Сложение b и произведения с и 10.

4. Вычитание из полученной суммы частного от деления d на 2.

5. Прибавление 9 к полученной разности.

Получается совсем другой результат, не так ли?

Комментарии

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

Для вставки комментариев в код ActionScript предусмотрены два оператора комментария: // и /*. */. Первый из них позволяет вставить в конец выражения однострочный комментарий:

// Строка комментария

а = b + с; // Это однострочный комментарий

Заметим, что комментарий ставится после точки с запятой, обозначающей конец выражения.

А оператор /*…*/ позволяет вставить в код программы комментарий любого размера:

/*

В этом выражении мы складываем содержимое двух переменных и помещаем результат в третью */

а = b + с;

Сложные выражения ActionScript

Рассмотрение основных понятий ActionScript мы закончили. Можно приступать к изучению более сложных вопросов. И начнем мы с написания так называемых сложных выражений.

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

Блоки

ActionScript позволяет нам объединить несколько выражений в одно. Такое выражение называется блочным выражением или просто блоком. Для выделения блочного выражения составляющие его выражения заключаются в фигурные скобки, например:

{

b = "12";

с = а — b;

}

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

Условные выражения

Условное выражение позволяет нам выполнить одно из двух входящих в него выражений в зависимости от выполнения или невыполнения какого-либо условия. Существует также другая, "вырожденная" разновидность условного выражения, содержащая только одно выражение, которое выполняется при выполнении условия и пропускается, если условие не выполнено.

Что может служить условием в условном выражении? Значение логической переменной или результат вычисления логического выражения. В качестве же выражений, которые должны быть выполнены или не выполнены, в зависимости от условия, могут быть использованы блоки.

Условное выражение имеет следующий формат:

if

(<Условие>).

<Блок "то">

else

<Блок "иначе ">

"Вырожденный" формат его выглядит так:

if (<Условие>).

<Блок "то">

Для написания условных выражений используются особые ключевые слова if и else (в приведенных выше примерах они выделены полужирным шрифтом). Условие — это и есть логическое выражение, в соответствии с которым Flash принимает решение, какой блок выполнить. Если условие имеет значение true ("истина"), то выполняется блок "то". Если же условие имеет значение false ("ложь"), то выполняется блок "иначе" (если он присутствует в условном выражении). Если же блок "иначе" отсутствует, выполняется следующее выражение сценария.

Рассмотрим несколько примеров.

if (х == 1) {

а = "Единица";

b = 1;

}

else {

а = "Не единица";

b = 22222;

}

Здесь мы сравниваем значение переменной х с единицей и в зависимости от результатов сравнения присваиваем переменным f и h разные значение. Обратим внимание на условие — именно так записывается оператор сравнения, в скобках.

Условие может быть довольно сложным:

if ((х == 1) && (у > 10))

f = 3;

else

f = 33;

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

Если условное выражение совсем простое, мы можем записать его немного по-другому. А именно, воспользоваться условным оператором?:

<Условиe>? <Выражение "то">: <Выражение "иначе">;

Достоинство этого оператора в том, что он может быть частью выражения. Например:

f = (х == 1 && у > 10)? 3: 33;

Фактически мы записали условное выражение из предыдущего примера, но в виде обычного арифметического выражения. Компактность кода налицо. Недостаток же оператора? в том, что с его помощью можно записывать только самые простые условные выражения.

Выражения выбора

Выражение выбора — это фактически несколько условных выражений, объединенных в одном.

Его формат таков:

switch (<Условиe>) {

case <Значение 1>:

<Блок 1>

[break;]

[case <Значение 2>:

<Блок 2>

[break;]]

<… Другие секции case>

[default:

<Блок, исполняемый для остальных значений>]

}

В выражениях выбора используются ключевые слова switch, case и default (выделены полужирным шрифтом).

Давайте выясним, как выполняется выражение выбора. Результат вычисления условия последовательно сравнивается со значением 1, значением 2 и т. д. и, если такое сравнение увенчалось успехом, выполняется соответствующий блок кода (блок 1, блок 2 и т. д.). Если же ни одно сравнение не увенчалось успехом, выполняется блок кода, находящийся в секции default (если, конечно, она есть).

Пример использования выражения выбора:

switch (а) {

case 1:

out = "Единица";

break;

case 2:

out = "Двойка";

break;

case 3:

out = "Тройка";

break;

default:

out = "Другое число";

}

Встретив действие break, Flash прерывает выполнение блока, в котором оно присутствует, и начинает выполнение кода, следующего за выражением выбора. Если его опустить, то будет выполнен следующий блок. Так, если значение условия совпало со значением 1 и был выполнен блок 1, не содержащий действия break, будет также выполнен блок 2.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*