Синтаксис литералов функций  ActionScript 

 

 

Экземпляры класса Function, как и многих предопределенных классов языка 

ActionScript, можно создавать с помощью синтаксиса литералов. Он практически 

ничем не отличается от синтаксиса стандартного объявления функций, за  

исключением отсутствующего имени функции. Вот его общий вид: 

function (параметре параметр2... параметра) { 

Здесь параметр1, параметр2. . . параметра — это необязательный список  

параметров. 

Чтобы воспользоваться функцией, описанной с помощью литерала функции, за 

пределами выражения, в котором встречается данный литерал, мы можем  

присвоить эту функцию переменной, как показано в следующем коде: 

var некаяПеременная = function (параметр1. параметр2... параметра) { 
После этого вызывать функцию можно через данную переменную, как показано 
ниже: 
некаяПеременная (аргументе аргумент2... аргумент) 
Например, в следующем коде для создания функции, которая возводит число в  
квадрат, используется литерал функции, а созданная функция присваивается  
переменной square: 
var square = function (n) { 
return n * n; 
Для вызова функции из предыдущего примера применяется следующий код: 
// Возводит в квадрат число 5 и возвращает результат 
squareE) 
Литералы функций иногда применяются совместно с собственной функцией 
flash, uti Is . set Interval ( ), которая имеет следующий вид: 
setlnterva](ФункцияИлиМетод, задержка) 
Функция set Interval ( ) создает интервал, используемый для  
автоматического вызова указанной функции или метода (ФункцияИлиМетод) каждые задержка  
миллисекунд. Каждому создаваемому интервалу присваивается число, возвращаемое 
функцией set Interval ( ) и называемое идентификатором интервала.  
Идентификатор интервала может быть присвоен переменной, что в дальнейшем позволит 
удалить соответствующий интервал вызовом функции clear Interval ( ), как 
показано в следующем примере кода: 
// Создать интервал, выполняющий функцию doSomething( ) каждые 
// 50 миллисекунд. Присвоить возвращаемый идентификатор интервала 
// переменной interval ID. 
var interval ID = setlnterval(doSomething. 50); 
// ...Далее в программе прекратить автоматический вызов функции 
// doSomething( ) 
clearlnterval(interval ID); 
В следующем коде продемонстрирован простейший класс Clock, который выводит 
отладочное сообщение " Tick! " один раз в секунду. Обратите внимание на  
использование литерала функции и собственных функций setlnterval ( ) и trace ( ). 
package { 
import flash.uti1s.setlnterval; 
public class Clock { 
public function Clock ( ) { 
// Выполнять литерал функции один раз в секунду 
Глава 5. Функции 
setlnterval(function ( ) { 
traceC\'Tick!"); 
}. 1000): 
Стоит отметить, что литералы функций используются исключительно ради  
удобства. Предыдущий код можно легко переписать с помощью вложенной функции, 
как показано далее: 
package { 
import f1 ash.utiIs.setlnterval; 
public class Clock { 
public function Clock ( ) { 
// Выполнять функцию tick( ) один раз в секунду 
setlnterval(tick, 1000); 
function tick ( ):void { 
traceC\'Tick!"); 
Можно утверждать, что версия класса Clock, реализованная с помощью  
вложенной функции, легче для чтения. Литералы широко используются при связывании 
функций с динамическими переменными экземпляра — этот вопрос  
рассматривается в разд. «Динамическое добавление нового поведения в экземпляр» гл. 15. 




BACK NEXT

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