Возврат ActionScript или возврат данных функцией

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

  1. Возврат ActionScript или возврат данных функцией
  2. Дополнительная информация

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

Чтобы решить эту задачу нужно воспользоваться способностью функции возвращать данные (возврат ActionScript). Сделать это просто: в самой последней строке функции запишите ключевое слово return (вернуть), затем, после пробела напишите переменную (var), значение которой и будет возвращаться функцией.

Для того чтобы использовать функцию, возвращающую данные (возврат ActionScript) нужно вызывать её в виде значения переменной (вызов функции ActionScript). Эта переменная будет содержать возвращаемое функцией значение, которое Вы можете использовать также как и значение любой другой переменной в Вашем скрипте. Например, если функция возвращает количество проданного за сегодняшний день товара, то она должна быть записана следующим образом:

var numItems:Number = getNumItems();

Значения, возвращаемые функцией (возврат ActionScript), могут принадлежать к любому типу данных ActionScript, включая как простые (String, Number, Boolean), так и сложные (Object, ActionScript Array или пользовательские классы, созданные Вами). Тип возвращаемых данных должен быть обязательно указан сразу после закрывающей круглой скобки в строке с аргументами. Обязательно проверьте соответствие типа данных для возвращаемого значения и того, что Вы получаете на самом деле. Если будет несоответствие, то во время воспроизведения скрипта возникнет ошибка!

Возврат данных функцией (возврат Actionscript)

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

Запишите функцию, например:

function addNums(numToAdd1:Number, numToAdd2:Number)

После закрывающей круглой скобки поставьте двоеточие и запишите тот тип данных, который соответствует возвращаемому значению:

function addNums(numToAdd1:Number, numToAdd2:Number):Number

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

function addNums(numToAdd1:Number, numToAdd2:Number):Number
{

}

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

function addNums(numToAdd1:Number, numToAdd2:Number):Number
{
   var sum:Number = numToAdd1 + numToAdd2;
}

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

function addNums(numToAdd1:Number, numToAdd2:Number):Number
{
   var sum:Number = numToAdd1 + numToAdd2;
   return sum;
}

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

var num1:Number = 12;
var num2:Number = 24;

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

var total:Number = addNums(num1, num2);

Проверьте результат, используя метод trace Actionscript:

trace(total);

Нажмите клавиши Ctrl + Enter. Запустится Flash Player для просмотра результата возврата ActionScript.

В итоге весь код в редакторе скрипта панели Actions должен выглядеть так:

Возврат ActionScript

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

Панель Output

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

Приведенный выше код можно было бы записать и так:

var sum:Number = numToAdd1 + numToAdd2;

Однако, добавление чисел отдельными строками кода делает всю запись в целом более читабельной и легко редактируемой.

Нельзя записывать что-либо ещё после инструкции со словом return кроме закрывающей фигурной скобки, т.к. подобные действия вызовут ошибку во время воспроизведения flash-ролика. Существует, правда, одно исключение из этого правила: это можно делать если ключевое слово return будет находится внутри условного выражения if-else, которое будет рассмотрено в уроке «Использование условных операторов else и else if». Хотя и там мы увидим, что, по большому счету, это правило особенно и не нарушается.