| Пакет | Верхний уровень |
| Класс | public final class Function |
| Наследование | Function Object |
| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Методы класса немного отличаются от объектов Function. В отличие от обычного объекта функции метод тесно связан со связанным объектом класса. Поэтому метод или свойство имеют определение, используемое всеми экземплярами одного и того же класса. Из экземпляра можно извлечь методы, обрабатываемые как «связанные» методы (сохраняющие ссылку на исходный экземпляр). В рамках связанного метода ключевое слово this указывает на исходный объект, реализовавший этот метод. В случае функции this указывает на связанный объект на момент вызова функции.
| Метод | Определено | ||
|---|---|---|---|
Указывает значение thisObject, используемого в любой функции, вызываемой ActionScript. | Function | ||
Вызывает функцию, представленную объектом Function. | Function | ||
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
apply | () | метод |
AS3 function apply(thisArg:*, argArray:*):*| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Указывает значение thisObject, используемого в любой функции, вызываемой ActionScript. Этот метод также указывает параметры, передаваемые любой вызванной функции. Поскольку apply() — это метод класса Function, он также является методом любого объекта Function в ActionScript.
Параметры указываются как объект Array в отличие от метода Function.call(), в котором параметры представлены в виде списка, разделенного запятыми. Часто бывает полезно, когда ряд передаваемых параметров неизвестен вплоть до фактического выполнения сценария.
Возвращает значение, которое вызванная функция указывает в качестве возвращаемого значения.
Параметры
thisArg:* (default = NaN) — Объект, к которому применяется функция.
| |
argArray:* (default = NaN) — Массив, элементы которого передаются функции в качестве параметров.
|
* — Любое значение, указанное вызванной функцией.
|
Связанные элементы API
call | () | метод |
AS3 function call(thisArg:*, ... args):*| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Вызывает функцию, представленную объектом Function. Каждая функция в ActionScript представлена объектом Function, и все функции поддерживают этот метод.
Почти всегда вместо этого метода можно прибегнуть к оператору вызова функции (()). Оператор вызова функции создает краткий и легко читаемый код. Этот метод полезен, в основном, тогда, когда параметр thisObject вызова функции необходимо контролировать явным образом. Обычно если функция вызывается как метод объекта, находящегося в теле функции, параметру thisObject присваивается значение myObject, как показано в следующем примере:
myObject.myMethod(1, 2, 3);
В некоторых ситуациях может потребоваться, чтобы thisObject указывал на другой объект (например, если функцию необходимо вызвать как метод объекта, но на самом деле она не сохраняется как метод этого объекта):
myObject.myMethod.call(myOtherObject, 1, 2, 3);
Чтобы вызвать функцию в качестве регулярной функции, а не метода объекта, можно присвоить значение null параметру thisObject. Например, эквивалентны следующие вызовы функции:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Возвращает значение, которое вызванная функция указывает в качестве возвращаемого значения.
Параметры
thisArg:* (default = NaN) — Объект, указывающий значение thisObject в теле функции.
| |
... args — Один или несколько параметров, передаваемых функции. Можно указать 0 или несколько параметров.
|
* |
Связанные элементы API
FunctionExample, SimpleCollection, EventBroadcaster и EventListener используются для показа различных применений функций в ActionScript. Это можно сделать, выполнив следующие действия:
- Конструктор
FunctionExampleсоздает локальную переменнуюsimpleColl, которая заполняется массивом целых чисел в диапазоне от1до8. - Объект
simpleCollвыводится на печать методомtrace(). - Объект EventListener (
listener) добавляется вsimpleColl. - При вызове функций
insert()иremove()этот прослушиватель отвечает на их события. - Создается второй объект SimpleCollection с именем
greaterThanFourColl. - Объекту
greaterThanFourCollприсваивается результатsimpleColl.select()с аргументом4и анонимной функцией. Метод выбора объекта SimpleCollection — внутренний итератор, использующий в качестве блока анонимный параметр функции.
package {
import flash.display.Sprite;
public class FunctionExample extends Sprite {
public function FunctionExample() {
var simpleColl:SimpleCollection;
simpleColl = new SimpleCollection(0, 1, 2, 3, 4, 5, 6, 7, 8);
trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 8
var listener:EventListener = new EventListener();
simpleColl.addListener(listener);
simpleColl.insert(9); // itemInsertedHandler: 9
simpleColl.remove(8); // itemRemovedHandler: 8
trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 9
var greaterThanFourColl:SimpleCollection;
greaterThanFourColl = simpleColl.select(4, function(item:int, value:int){ return item > value });
trace(greaterThanFourColl); // 5, 6, 7, 9
}
}
}
import flash.display.Sprite;
class EventBroadcaster {
private var listeners:Array;
public function EventBroadcaster() {
listeners = new Array();
}
public function addListener(obj:Object):void {
removeListener(obj);
listeners.push(obj);
}
public function removeListener(obj:Object):void {
for(var i:uint = 0; i < listeners.length; i++) {
if(listeners[i] == obj) {
listeners.splice(i, 1);
}
}
}
public function broadcastEvent(evnt:String, ...args):void {
for(var i:uint = 0; i < listeners.length; i++) {
listeners[i][evnt].apply(listeners[i], args);
}
}
}
class SimpleCollection extends EventBroadcaster {
private var arr:Array;
public function SimpleCollection(... args) {
arr = (args.length == 1 && !isNaN(args[0])) ? new Array(args[0]) : args;
}
public function insert(obj:Object):void {
remove(obj);
arr.push(obj);
broadcastEvent("itemInsertedHandler", obj);
}
public function remove(obj:Object):void {
for(var i:uint = 0; i < arr.length; i++) {
if(arr[i] == obj) {
var obj:Object = arr.splice(i, 1)[0];
broadcastEvent("itemRemovedHandler", obj);
}
}
}
public function select(val:int, fn:Function):SimpleCollection {
var col:SimpleCollection = new SimpleCollection();
for(var i:uint = 0; i < arr.length; i++) {
if(fn.call(this, arr[i], val)) {
col.insert(arr[i]);
}
}
return col;
}
public function toString():String {
var str:String = new String();
for(var i:uint = 0; i < arr.length - 1; i++) {
str += arr[i] + ", ";
}
str += arr[arr.length - 1];
return str;
}
}
class EventListener {
public function EventListener() {
}
public function itemInsertedHandler(obj:Object):void {
trace("itemInsertedHandler: " + obj);
}
public function itemRemovedHandler(obj:Object):void {
trace("itemRemovedHandler: " + obj);
}
}
Tue Jun 12 2018, 11:34 AM Z
Скрыть унаследованные общедоступные свойства
Показать унаследованные общедоступные свойства