Передача параметров ActionScript функции

На этом уроке Actionscript мы рассмотрим 2 вопроса:

  1. Передача параметров ActionScript функции
  2. Дополнительная информация

В изучаемом нами языке программирования переменные ActionScript, созданные внутри функции называются локальными переменными (local variable). Это значит, что весь остальной код, находящийся вне этой функции, НЕ может читать значения таких переменных или обращаться к ним. Переменные, созданные за пределами функции называются глобальными переменными (global variable). К ним можно обращаться из любого места кода, т.е. как изнутри функции, так и снаружи.

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

Однако, в процессе работы у Вас не раз возникнут ситуации, в которых функция (вызов функции Actionscript) должна будет управлять переменной, находящейся вне её. В таких ситуациях Вы должны передать переменную функции в форме параметра или аргумента. Передача параметров ActionScript функции происходит в круглых скобках, следующих сразу после имени функции. После этого аргументы используются в качестве переменных внутри функции. Также Вы должны декларировать тип данных Actionscript для каждого передаваемого функции аргумента, и удостовериться, что данный тип данных правильный. В случае ввода неправильного типа данных, скрипт вернёт ошибку.

Вызывая функцию Вы должны произвести передачу параметров ActionScript, записав их внутри скобок, сразу после имени функции. Они могут быть как значениями в чистом виде (55, “книга”, true и т.д.), так и переменными или экземплярами объектов, в зависимости от того какие типы данных может принять функция.

Передача параметров ActionScript функции

Откройте панель Actions.

Наберите ключевое слово function, затем имя функции и круглые скобки, например:

Внутри скобок запишите аргументы, передаваемые этой функции, например:

После круглых скобок поставьте открывающую фигурную скобку. Нажмите дважды Enter и закройте фигурные скобки.

Внутри фигурных скобок запишите первый аргумент, например:

затем второй

Создайте ещё одну переменную, в которой используйте две ранее созданные переменные

Для проверки результата используйте метод trace

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

Запишите вторую глобальную переменную

Вызовите функцию

В редакторе кода панели Actions вся предыдущая запись должна выглядеть следующим образом:

Передача параметров ActionScript

Нажмите Ctrl + Enter. Запуститься Flash Player.

В окне Output отобразится итоговый результат работы функции.

Панель Output

Дополнительная информация

Обычно, при передаче параметров ActionScript функции они записываются именно в том порядке, в каком они будут следовать в теле функции. В примере выше мы видели, что firstNum передавался функции как numToAdd1, а secondNum как numToAdd2. Однако, вполне возможно передавать аргументы следующим образом:

Кроме того, можно передавать функции аргументы, которые будут опциональными, т.е. необязательными или дополнительными, например:

В таких случаях, будет использоваться, то значение аргумента, которое задано по умолчанию, если не передано какое-либо другое значение. Такие аргументы всегда записываются после обязательных, которым значение по умолчанию не присваивается!

Передача параметров ActionScript функции: 7 комментариев

  1. Добрый день! А обязательно создавать локальные переменные num1 и num2 внутри функции? Можно обойтись только: var sum: Number = numToadd1+numToadd2; trace(sum);

      1. Я бы тоже хотел услышать аргументированный ответ на вопрос dDenis91. То, что ниже написал Максим совершенно не ответ. Ну мужно, ну и что? Вопрос в том, почему ТАК учит нас делать урок. Интуитивно я догадываюсь, но хотелось бы точного ответа.

        1. dDenis91 спрашивает: “А обязательно создавать локальные переменные num1 и num2 внутри функции? Можно обойтись только: var sum: Number = numToadd1+numToadd2; trace(sum);” Ответ: перечитайте внимательно 4-й абзац в начале урока, начинающийся со слов “Однако, плохой практикой считается…”

  2. Валерий, вот ваш собственный пример из СЛЕДУЮЩЕГО урока: function addNums(numToAdd1:Number, numToAdd2:Number):Number { var sum:Number = numToAdd1 + numToAdd2; } И это один в один то, что и предлагает сделать Максим. ИМХО, вы ввели лишние переменные в этом уроке. Переменные numToAdd1 и numToAdd2 и так являются внутренними, так зачем же еще раз их переназначать.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *