Paquete | Nivel superior |
Clase | public final class Function |
Herencia | Function Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Los métodos de una clase son ligeramente distintos de los objetos Function. A diferencia de un objeto de función normal, un método está fuertemente vinculado a su objeto de clase asociado. Por consiguiente, un método o propiedad tiene una definición que se comparte entre todas las instancias de la misma clase. Los métodos pueden extraerse de una instancia y considerarse como métodos "vinculados" (que conservan el vínculo con la instancia original). Para un método vinculado, la palabra clave this
señala al objeto original que implementó el método. Para una función, this
señala al objeto asociado en el momento en que se invocó la función.
Método | Definido por | ||
---|---|---|---|
Especifica el valor de thisObject que debe utilizarse dentro de cualquier función a la que llame ActionScript. | Function | ||
Invoca la función representada por un objeto Function. | Function | ||
Indica si un objeto tiene definida una propiedad especificada. | Object | ||
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. | Object | ||
Indica si existe la propiedad especificada y si es enumerable. | Object | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Devuelve el valor simple del objeto especificado. | Object |
apply | () | método |
AS3 function apply(thisArg:*, argArray:*):*
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Especifica el valor de thisObject
que debe utilizarse dentro de cualquier función a la que llame ActionScript. Este método también especifica parámetros que deben pasarse a la función llamada. Dado que apply()
es un método de la clase Function, es también un método de todos los objetos Function de ActionScript.
Los parámetros se especifican como objeto Array, a diferencia de Function.call()
, que especifica los parámetros como una lista separada por comas. Suele ser útil cuando no se conoce el número de parámetros hasta que se ejecuta el script.
Devuelve el valor que la función llamada especifica como valor de devolución.
Parámetros
thisArg:* (default = NaN ) — Objeto al que se aplica la función.
| |
argArray:* (default = NaN ) — Conjunto cuyos elementos se pasan a la función como parámetros.
|
* — Cualquier valor especificado por la función llamada.
|
Elementos de API relacionados
call | () | método |
AS3 function call(thisArg:*, ... args):*
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Invoca la función representada por un objeto Function. Cada función de ActionScript se representa mediante un objeto Function, de modo que todas las funciones admiten este método.
En casi todos los casos puede utilizarse el operador de llamada de función (()
) en lugar de este método. El operador de llamada de función hace que el código sea conciso y legible. Este método es de gran utilidad cuando debe controlarse explícitamente el parámetro thisObject
de la llamada de función. Normalmente, si se invoca una función como método de un objeto dentro del cuerpo de la función, thisObject
se define como myObject
, tal y como se muestra en el siguiente ejemplo:
myObject.myMethod(1, 2, 3);
En algunos casos, es posible que desee que thisObject
haga referencia a otro elemento; por ejemplo, si debe invocarse una función como un método de un objeto, pero en realidad no se almacena como método de dicho objeto:
myObject.myMethod.call(myOtherObject, 1, 2, 3);
Puede pasar el valor null
para el parámetro thisObject
para invocar una función como función regular y no como un método de un objeto. Por ejemplo, las llamadas de función siguientes son equivalentes:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Devuelve el valor que la función llamada especifica como valor de devolución.
Parámetros
thisArg:* (default = NaN ) — Objeto que especifica el valor de thisObject en el cuerpo de la función.
| |
... args — Parámetro o parámetros que se van a transferir a la función. Puede especificar cero o más parámetros.
|
* |
Elementos de API relacionados
FunctionExample
, SimpleCollection
, EventBroadcaster
y EventListener
para ilustrar varios usos de las funciones en ActionScript. Esto se consigue con los pasos siguientes:
- El constructor para
FunctionExample
crea una variable local llamadasimpleColl
, que se llena con un conjunto de enteros que va de1
a8
. - El objeto
simpleColl
se imprime utilizandotrace()
. - Un objeto EventListener,
listener
, se añade asimpleColl
. - Cuando se llama a las funciones
insert()
yremove()
, el detector responde a los eventos. - Se crea un segundo objeto SimpleCollection llamado
greaterThanFourColl
. - Se asigna al objeto
greaterThanFourColl
el resultado desimpleColl.select()
con el argumento4
y una función anónima. El método de selección del objeto SimpleCollection es un repetidor interno que utiliza el parámetro de la función anónima como bloque.
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, 02:12 PM Z