PacchettoPrimo livello
Classepublic dynamic class Function
EreditarietàFunction Inheritance Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Una funzione è l'unità di codice di base che può essere richiamata in ActionScript. Sia le funzioni ActionScript definite dall'utente che quelle incorporate sono rappresentate da oggetti Function, che a loro volta sono istanze della classe Function.

I metodi di una classe sono leggermente diversi dagli oggetti Function. A differenza di un normale oggetto Function, un metodo è strettamente collegato al proprio oggetto classe associato. Pertanto, un metodo o una proprietà ha un definizione che è condivisa tra tutte le istanze della stessa classe. I metodi possono essere estratti da un'istanza e trattati come metodi "vincolati" (mantenendo il collegamento all'istanza originale). Per un metodo vincolato, la parola chiave this punta all'oggetto originale che ha implementato il metodo. Per una funzione, this punta all'oggetto associato al momento in cui viene richiamata la funzione.

Vedere gli esempi

Vedere anche

Metodi


Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
Metodi pubblici
 MetodoDefinito da
  
apply(thisObject:Object, argArray:Array = null):void
Specifica il valore di thisObject da utilizzare all'interno delle funzioni chiamate da ActionScript.
Function
  
call(thisObject:Object, parameter1:String = null):void
Richiama la funzione rappresentata da un oggetto Function.
Function
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
Descrizione dei metodi
apply()metodo
AS3 function apply(thisObject:Object, argArray:Array = null):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica il valore di thisObject da utilizzare all'interno delle funzioni chiamate da ActionScript. Questo metodo specifica inoltre i parametri da passare a ogni funzione chiamata. Dal momento che apply() è un metodo della classe Function, è anche un metodo di ogni oggetto Function in ActionScript.

I parametri sono specificati sotto forma di oggetto Array, a differenza di Function.call() in cui sono specificati sotto forma di elenco delimitato da virgole. Ciò risulta spesso utile quando non si conosce il numero dei parametri da passare finché lo script non viene effettivamente eseguito.

Restituisce il valore che la funzione chiamata specifica come valore restituito.

Parametri

thisObject:Object — L'oggetto a cui viene applicata la funzione.
 
argArray:Array (default = null) — Un array i cui elementi vengono passati come parametri alla funzione.

Vedere anche

call()metodo 
AS3 function call(thisObject:Object, parameter1:String = null):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Richiama la funzione rappresentata da un oggetto Function. Ogni funzione di ActionScript è rappresentata da un oggetto Function, pertanto tutte le funzioni supportano questo metodo.

Nella maggior parte dei casi, è possibile utilizzare l'operatore di chiamata della funzione (()) anziché questo metodo. L'operatore di chiamata della funzione crea un codice conciso e leggibile. Questo metodo risulta utile soprattutto quando il parametro thisObject della richiamata della funzione deve essere esplicitamente controllato. In genere, se una funzione viene richiamata come metodo di un oggetto all'interno del corpo della funzione, thisObject viene impostato su myObject, come illustrato di seguito:

  myObject.myMethod(1, 2, 3);
  

In alcuni casi, può essere necessario impostare il parametro thisObject in modo che faccia riferimento a un'altra posizione; ad esempio, per richiamare una funzione come metodo di un oggetto quando la funzione non è effettivamente memorizzata in questo modo.

  myObject.myMethod.call(myOtherObject, 1, 2, 3); 
  

È possibile passare il valore null per il parametro thisObject per invocare una funzione come funzione regolare e non come metodo di un oggetto. Ad esempio, le seguenti invocazioni di funzione sono equivalenti:

  Math.sin(Math.PI / 4)
  Math.sin.call(null, Math.PI / 4)
  

Restituisce il valore che la funzione chiamata specifica come valore restituito.

Parametri

thisObject:Object — Un oggetto che specifica il valore di thisObject all'interno del corpo della funzione.
 
parameter1:String (default = null) — Un parametro da passare alla funzione. È possibile specificare zero o più parametri.

Vedere anche

Esempi Come utilizzare gli esempi
FunctionExample.as

L'esempio seguente utilizza le classi FunctionExample, SimpleCollection, EventBroadcaster e EventListener per mostrare i vari modi di utilizzare le funzioni in ActionScript. Questa operazione viene eseguita mediante la procedura seguente:
  1. La funzione di costruzione di FunctionExample crea una variabile locale denominata simpleColl, che viene compilata con un array di numeri interi compresi tra 1 e 8.
  2. L'oggetto simpleColl viene stampato mediante trace().
  3. Un oggetto EventListener, listener, viene aggiunto a simpleColl.
  4. Quando vengono chiamate le funzioni insert() e remove(), il listener risponde ai loro eventi.
  5. Viene creato un secondo oggetto SimpleCollection denominato greaterThanFourColl.
  6. All'oggetto greaterThanFourColl viene assegnato il risultato di simpleColl.select() con l'argomento 4 e una funzione anonima. Il metodo select dell'oggetto SimpleCollection è un iteratore interno che utilizza il parametro della funzione anonima come un blocco.
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);        
    }
}




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/Function.html