Macromedia Flash Professional 8. Графика и анимация
Шрифт:
Бинарные операторы всегда имеют два операнда и помещают результат в третью переменную. Вот примеры выражений с бинарными операторами:
l = r * 3.14;
f = е / 2;
х = х + t / 3;
Операторы инкремента и декремента рекомендуется использовать, если значение какой-либо переменной нужно увеличить или уменьшить на единицу. Эти операторы выполняются быстрее, чем операторы сложения и вычитания.
Оператор объединения строк + позволяет соединить две строки в одну. Например, сценарий:
s1 = "Flash";
s2 = "8";
s = s1 + s2;
поместит
Оператор простого присваивания = нам уже знаком. С его помощью переменной присваивается новое значение:
а = 2;
b = с = 3;
Второе выражение в приведенном примере выполняет присвоение значения 3 сразу двум переменным — b и с.
Кроме операторов присваивания, ActionScript поддерживает операторы сложного присваивания. Такие операторы позволяют выполнять операцию присваивания одновременно с другой операцией:
а = а + b;
а += b;
Два этих выражения эквивалентны по результату. Просто во втором был использован оператор сложного присваивания +=.
Все операторы сложного присваивания, поддерживаемые ActionScript, и их эквиваленты приведены в табл. 19.3.
Операторы сравнения сравнивают два операнда и возвращают логическое значение. Если условие сравнения выполняется, возвращается логическое значение "истина" (true), если не выполняется — "ложь" (false). Вот примеры выражений с операторами присваивания:
а1 = 2 < 3;
a2 = -4 > 0;
а3 = r < t;
Переменная a1 получит значение true (2 меньше 3), переменная а2 — значение false (число -4 по определению не может быть больше нуля), а значение переменной а3 будет зависеть от значений переменных r и t.
Все поддерживаемые ActionScript операторы сравнения приведены в табл. 19.4.
С первыми шестью операторами сравнения все понятно. Но на двух последних операторах — "строго равно" и "строго не равно" — нужно остановиться подробнее. Это операторы так называемого строгого сравнения. Обычные операторы "равно" и "не равно", если встречают операнды разных типов, пытаются преобразовать их к одному типу (о преобразованиях типов см. далее в этой главе). Операторы строгого равенства и строгого неравенства такого преобразования не делают, а в случае несовместимости типов операндов возвращают false.
Логические операторы выполняют действия над логическими значениями. Все они приведены в табл. 19.5. А в табл. 19.6 и 19.7 показаны результаты выполнения этих операторов.
Основная область
применения логических операторов — выражения сравнения (о них см. далее в этой главе). Приведем примеры таких выражении:а = (b > 0) && (с + 1!
– d);
flag =! (status — 0);
Оператор typeof принимает в качестве операнда переменную или выражение и возвращает строку, описывающую тип данных операнда. Все значения, которые он может вернуть, перечислены в табл. 19.8.
Оператор typeof может использоваться, например, так:
status = typeof (somevar);
Здесь мы присваиваем результат выполнения оператора typeof строковой переменной status. Впоследствии он может быть использован, например, в условном выражении.
И напоследок рассмотрим еще два важных вопроса: совместимость типов данных и преобразование одного типа к другому.
Что получится, если сложить два числовых значения? Правильно — еще одно числовое значение. А если сложить число и строку? Трудно сказать. Тут Flash сталкивается с проблемой несовместимости типов данных и пытается сделать эти типы совместимыми, преобразуя один из них к другому. Сначала он пытается преобразовать строку в число и, если это удается, выполняет сложение. В случае неудачи число будет преобразовано в строку, и две полученные строки будут объединены. Например, в результате выполнения операторов
var а, b, с, d, е, f;
а = 11;
b = "12";
с = а + b;
d = "Flash";
е = 8;
f = d + е;
значение переменной b при сложении с переменной а будет преобразовано в числовой тип; таким образом, переменная с будет содержать значение 23. Но так как значение переменной d не может быть преобразовано в число, значение е будет преобразовано в строку, и результат — значение f — станет равным "FlashS".
Логические величины преобразуются либо в числовые, либо в строковые, в зависимости от конкретного случая. Значение true будет преобразовано в число 1 или строку "1", а значение false — в 0 или "0".
Видно, что Flash изо всех сил пытается правильно выполнить даже некорректно написанные выражения. Иногда это получается, но чаще все работает не так, как планировалось, и, в конце концов, выполнение сценария прерывается в связи с обнаружением ошибки совсем в другом его месте, на абсолютно верном операторе. Поэтому лучше всего не допускать подобных казусов, оперировать только переменными совместимых типов и самим выполнять нужные преобразования типов.
Для преобразования типов данных используется следующий синтаксис:
<Переменная нужного типа> = <Ключевое слово, соответствующее этому типу>
(<Преобразуемое значение>);
Ключевые слова, соответствующие тому или иному типу данных, приведены в табл. 19.8. Да, именно эти слова возвращает оператор typeof в качестве результата. Единственное — их нужно указывать с большой буквы.
Например, для того чтобы преобразовать строку в число, нужно написать такое выражение:
- Telegram
- Viber
- Skype
- ВКонтакте