Опубликован: 04.11.2006 | Уровень: специалист | Доступ: платный
Урок 8:

Манипулирование данными

< Урок 7 || Урок 8: 1234 || Урок 9 >

Операторы

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

Примечание В этом разделе рассматриваются арифметические операторы. Информацию об операторах сравнения и логических операторах вы найдете в Уроке 9 – Использование логических условий.

Арифметические операторы

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

  • Оператор сложения (+). Служит для сложения двух чисел. Пример: totalCost = productPrice + tax ; – результат получается сложением значений двух переменных.
  • Оператор инкремента (++). Прибавляет к значению единицу. Пример: ++myAge; – значение переменной myAge увеличивается на 1 (эквивалент выражения myAge = myAge + 1 ;).
  • Оператор вычитания (-). Служит для вычитания одного значения из другого. Пример: moneyInWallet = paycheck – moneySpent; – результат получается вычитанием moneySpent из paycheck.
  • Оператор декремента (--). Уменьшает значение на единицу. Пример: --bottlesOfBeer ; – бутылок пива станет на одну меньше.
  • Оператор умножения (*). Умножает одно числовое значение на другое. Пример: hoursPer-Week = 24 * 7 ; – количество часов в неделе получается в результате умножения 24 на 7.
  • Оператор деления (/). Делит одно число на другое. Пример: hourlyRate = paycheck / hoursBilled ; – итог получается делением значения paycheck на значение hoursBilled.
  • Оператор нахождения остатка от деления (%). Выдает остаток от деления одного целого числа на другое. Пример: 4 % 2; – результатом будет 0, поскольку 4 делится на 2 без остатка. Пример: 7 % 3; – даст результат 1, так при делении 7 на 3 получается 2 и остаток 1.

Строковые операторы

Для операций со строками имеется лишь один оператор – оператор конкатенации (впрочем, манипулировать строковыми значениями можно еще и с помощью различных методов объекта String). Другие операторы (присвоения и сравнения) хотя и могут работать со строковыми значениями, но не манипулируют непосредственно самой строкой (подробнее об операторах сравнения – в Уроке 9, Использование логических условий.

  • Оператор конкатенации (+). Конкатенацией называется соединение, "склеивание" двух строк. Оператор конкатенации, который обозначается знаком +, как и оператор сложения чисел, объединяет два строковых значения в одну строку. Пример: burthDayMessage = "Мне исполнилось " + age + " лет." ;. Здесь операторы конкатенации соединят три части сообщения вместе; если age имеет значение 26, то в результате получится строка "Мне исполнилось 26 лет.".

Совет В отличие от некоторых других языков программирования, в ActionScript не требуется при создании переменной объявлять, значение какого типа она будет содержать. В зависимости от контекста строка может рассматриваться как число и наоборот. В этом есть свои преимущества, но из-за этого же могут возникнуть и проблемы. Дело вот в чем. Поскольку знак "плюс" (+) служит для обозначения сразу двух операторов – сложения чисел и конкатенации строк, Flash должен знать, с какими значениями он имеет дело – со строками или числами. При этом могут возникать недоразумения, особенно если данные загружаются из внешних источников. Например, Flash в выражении вроде PayCheck1 + PayCheck2 может посчитать два числа строками, и, вместо того, чтобы складывать, "склеит" их (45+65 даст результат "4565" вместо 110). При получении данных из внешних источников или полей, в которые информацию вводит пользователь вы можете, во избежание ошибок, использовать функцию Number() – например, Number(PayCheck1) + Number(PayCheck2) – в этом случае вы можете быть уверены, что значения будут рассматриваться именно как числовые.

Приоритет

Нередко выражения содержат не один оператор, а сразу несколько. В этом случае важно точно представлять себе порядок их выполнения, который определяется приоритетом операторов. Вы прекрасно знаете, что математические действия над числами выполняются поочередно (например, возьмем выражение myNumber = 20 * 5 - 3: понятно, что нельзя произвести оба действия – умножение и вычитание – одновременно). Порядок вычислений в выражениях ActionScript определяется следующими правилами приоритета:

  1. Все вычисления в скобках выполняются раньше, чем вычисления вне скобок. Если вы хотите точно контролировать порядок вычислений в своих выражениях, используйте скобки.
  2. Действия умножения и деления выполняются раньше, чем сложение и вычитание. Между собой умножение и деление имеют равный приоритет, и потому, если в выражении имеется несколько таких операторов, они выполняются (при отсутствии скобок) по порядку следования слева направо.
  3. Сложение и вычитание выполняются в последнюю очередь. Эти действия имеют равный приоритет, они выполняются (при отсутствии скобок) по порядку следования слева направо.

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

myVariable = 5 + 7 - 3;

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

myVariable = 5 + 7 * 3;

Поскольку умножение имеет приоритет перед сложением, сначала 7 умножается на 3, а затем к результату прибавляется 5. В итоге переменная myVariable получает значение 26.

myVariable = (5 + 7) * 3;

Поскольку вычисления в скобках имеют приоритет, сначала 5 прибавляется к 7, затем результат умножается на 3. В итоге переменная myVariable получает значение 36.

myVariable = ((2 + 8) * (4 – 2)) / 5;

Снова приоритет скобок: сначала складываются числа 2 и 8, затем из 4 вычитается 2. Эти два результата перемножаются, итог делится на 5. Переменной myVariable присваивается значение 4.


< Урок 7 || Урок 8: 1234 || Урок 9 >
Евгений Стародубцев
Евгений Стародубцев

Вот задание:

7. Открыв панель Действия (Actions) и установив ее в Экспертный режим(Expert Mode), выделите кадр 1 слоя Actions и введите следующий скрипт:

Галина Кузнецова
Галина Кузнецова

Добрый день.

Можно ли получить среду Flash для обучения бесплатно?

Евгения Дегтяренко
Евгения Дегтяренко
Украина, Запорожье
Анна Елисеева
Анна Елисеева
Россия, Великий Новгород, Ногородский государственный университет имени Ярослава Мудрого, 2003