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

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

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

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

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

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

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

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

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

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

function addNums()

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

numToAdd1:Number, numToAdd2:Number

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

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

var num1:Number = numToAdd1;

затем второй

var num2:Number = numToAdd2;

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

var sum:Number = num1 + num2;

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

trace(sum);

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

var firstNum:Number = 10;

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

var secondNum:Number = 32;

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

addNums(firstNum, secondNum);

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

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

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

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

Панель Output

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

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

addNums(numToAdd1 = firstNum, numToAdd2 = secondNum);

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

function addNums(numToAdd1:Number, numToAdd2:Number, 
numToAdd3:Number = 0)

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