PaqueteNivel superior
Clasepublic dynamic class Function
HerenciaFunction Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Una función es la unidad básica de código que puede invocarse en ActionScript. Tanto las funciones definidas por el usuario como las funciones incorporadas de ActionScript se representan mediante objetos Function, que son instancias de la función Function.

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.

Ver los ejemplos

Véase también

Métodos


Propiedades públicas
 PropiedadDefinido por
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
Métodos públicos
 MétodoDefinido por
  
apply(thisObject:Object, argArray:Array = null):void
Especifica el valor de thisObject que debe utilizarse dentro de cualquier función a la que llame ActionScript.
Function
  
call(thisObject:Object, parameter1:String = null):void
Invoca la función representada por un objeto Function.
Function
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
Información sobre métodos
apply()método
AS3 function apply(thisObject:Object, argArray:Array = null):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

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

thisObject:Object — Objeto al que se aplica la función.
 
argArray:Array (default = null) — Matriz cuyos elementos se pasan a la función como parámetros.

Véase también

call()método 
AS3 function call(thisObject:Object, parameter1:String = null):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

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

thisObject:Object — Objeto que especifica el valor de thisObject en el cuerpo de la función.
 
parameter1:String (default = null) — Un parámetro que se pasa a la función. Puede especificar cero o más parámetros.

Véase también

Ejemplos Cómo utilizar los ejemplos
FunctionExample.as

En el ejemplo siguiente, se utilizan las clases FunctionExample, SimpleCollection, EventBroadcaster y EventListener para ilustrar varios usos de las funciones en ActionScript. Esto se consigue con los pasos siguientes:
  1. El constructor para FunctionExample crea una variable local llamada simpleColl, que se llena con una matriz de enteros que va de 1 a 8.
  2. El objeto simpleColl se imprime utilizando trace().
  3. Un objeto EventListener, listener, se añade a simpleColl.
  4. Cuando se llama a las funciones insert() y remove(), el detector responde a los eventos.
  5. Se crea un segundo objeto SimpleCollection llamado greaterThanFourColl.
  6. Se asigna al objeto greaterThanFourColl el resultado de simpleColl.select() con el argumento 4 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);
    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/Function.html