Вложенные функции ActionScript 

 

 

Когда описание функции размещается внутри метода или другой функции,  

создается вложенная функция, которая доступна для использования только внутри 

содержащего ее метода или функции. По существу, вложенная функция описывает 

многократно используемую подзадачу, полностью принадлежащую тому методу 

или функции, в которых она определена. Следующий код демонстрирует базовый 
пример вложенной функции b ( ), описанной внутри метода экземпляра а ( ). 
Вложенная функция b ( ) может быть использована только внутри метода а ( ); 
за пределами метода а ( ) функция b ( ) недоступна. 
// Описание метода а( ) 
public function a ( ) { 
// Вызов вложенной функции Ь( ) 
Ь( ); 
// Описание вложенной функции Ь( ) 
function b ( ) { 
// Здесь должно размещаться тело функции 
В предыдущем коде стоит обратить внимание на то, что вложенная функция может 
вызываться в любом месте содержащего ее метода, даже до описания этой функции. 
Обращение к переменной или функции до того, как эта переменная или функция 
будут описаны, называется опережающим обращением. Помимо этого стоит  
отметить, что для вложенных функций невозможно использовать модификаторы 
управления доступом (public, internal и т. д.). 
Следующий код демонстрирует более реальный пример метода, содержащего  
вложенную функцию. Метод getRandomPoint ( ) возвращает объект типа Point, 
который представляет произвольную точку в заданном прямоугольнике.  
Чтобы получить произвольную точку, этот метод использует вложенную функцию 
getRandomlnteger ( ) для вычисления случайных координат по осям X и Y.  
Обратите внимание, что в функции getRandomlnteger ( ) применяются  
собственные статические методы Math. random ( ) и Math. floor ( ). Первый метод  
возвращает случайное число с плавающей запятой, большее либо равное 0, но меньшее 1. 
Второй метод устраняет дробную часть числа с плавающей запятой.  
Дополнительную информацию по статическим методам класса Math можно найти в справочнике 
по языку ActionScript корпорации Adobe. 
public function getRandomPoint (rectangle) { 
var randomX = getRandomlnteger(rectangle.left, rectangle.right); 
var randomY = getRandomlnteger(rectangle.top. rectangle.bottom); 
return new Point(randomX. randomY); 
function getRandomlnteger (min, max) { 
return min + Math.floor(Math.random( )*(max+l - min)); 




BACK NEXT

Сайт является частным собранием материалов и представляет собой любительский информационно-образовательный ресурс. Вся информация получена из открытых источников. Администрация не претендует на авторство использованных материалов. Все права принадлежат их правообладателям