ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
Oberste Ebene 

Function  - AS3

PaketOberste Ebene
Klassepublic final class Function
VererbungFunction Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Eine Funktion ist die grundlegende Codeeinheit, die in ActionScript aufgerufen werden kann. Sowohl benutzerdefinierte als auch integrierte Funktionen in ActionScript werden durch Function-Objekte repräsentiert, die Instanzen der Function-Klasse sind.

Die Methoden einer Klasse unterscheiden sich etwas von Function-Objekten. Im Gegensatz zu einem gewöhnlichen Function-Objekt ist eine Methode eng an das zugehörige Klassenobjekt gebunden. Daher besitzt eine Methode oder Eigenschaft eine Definition, die von allen Instanzen derselben Klasse genutzt wird. Methoden können aus einer Instanz extrahiert werden, und werden als „gebundene“ Methoden bezeichnet (da sie die Verknüpfung zur Originalinstanz beibehalten). Bei einer gebundenen Methode zeigt das Schlüsselwort this auf das Objekt, das ursprünglich die Methode implementiert hat. Bei einer Funktion zeigt this auf das Objekt, das zum Zeitpunkt des Funktionsaufruf verknüpft war.

Beispiele anzeigen



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
Öffentliche Methoden
 MethodeDefiniert von
  
apply(thisArg:*, argArray:*):*
Gibt den Wert von thisObject an, der in sämtlichen von ActionScript aufgerufenen Funktionen verwendet werden soll.
Function
  
call(thisArg:*, ... args):*
Ruft die durch ein Function-Objekt dargestellte Funktion auf.
Function
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Methodendetails

apply

()Methode
AS3 function apply(thisArg:*, argArray:*):*

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt den Wert von thisObject an, der in sämtlichen von ActionScript aufgerufenen Funktionen verwendet werden soll. Diese Methode gibt außerdem die Parameter an, die an eine aufgerufene Funktion übergeben werden. Da es sich bei apply() um eine Methode der Function-Klasse handelt, ist sie gleichzeitig auch eine Methode aller Function-Objekte in ActionScript.

Die Parameter werden im Gegensatz zu Function.call(), das Parameter als eine durch Komma getrennte Liste definiert, als Array-Objekte angegeben. Dies ist besonders dann nützlich, wenn die Anzahl der zu übergebenden Parameter erst bei der eigentlichen Skriptausführung bekannt wird.

Gibt den Wert zurück, der von der aufgerufenen Funktion als Rückgabewert angegeben wurde.

Parameter

thisArg:* (default = NaN) — Das Objekt, auf das die Funktion angewendet wird.
 
argArray:* (default = NaN) — Ein Array, dessen Elemente als Parameter an die Funktion übergeben werden.

Rückgabewerte
* — Alle Werte, die durch die aufgerufene Funktion angegeben werden.

Verwandte API-Elemente

call

()Methode 
AS3 function call(thisArg:*, ... args):*

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Ruft die durch ein Function-Objekt dargestellte Funktion auf. Da jede Funktion in ActionScript durch ein Function-Objekt dargestellt wird, unterstützen alle Funktionen diese Methode.

In den meisten Fällen kann der Funktionsaufrufoperator (()) anstelle dieser Methode verwendet werden. Der Funktionsaufrufoperator erzeugt kompakten und leicht lesbaren Code. Diese Methode bietet sich besonders dann an, wenn der thisObject-Parameter im Funktionsaufruf explizit gesteuert werden muss. Wenn eine Funktion als Methode eines Objekts aufgerufen wird, wird, wie im folgenden Beispiel, im Hauptteil der Funktion thisObject normalerweise auf myObject gesetzt:

  myObject.myMethod(1, 2, 3);
  

In bestimmten Fällen sollten Sie mit thisObject auf ein anderes Objekt Bezug nehmen, z. B. wenn eine Funktion als Methode eines Objekts aufgerufen werden muss, aber nicht als Methode dieses Objekts gespeichert ist:

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

Sie können für den Parameter null den Wert thisObject übergeben, um eine Funktion als normale Funktion und nicht als Methode eines Objekts aufzurufen. Die folgenden Funktionsaufrufe sind beispielsweise gleichwertig:

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

Gibt den Wert zurück, der von der aufgerufenen Funktion als Rückgabewert angegeben wurde.

Parameter

thisArg:* (default = NaN) — Ein Objekt, das den Wert von thisObject innerhalb des Hauptteils der Funktion angibt.
 
... args — Der/die Parameter, der/die an die Funktion übergeben wird/werden. Sie können keinen oder beliebig viele Parameter angeben.

Rückgabewerte
*

Verwandte API-Elemente

FunctionExample.as

Im folgenden Beispiel werden mithilfe der Klassen FunctionExample, SimpleCollection, EventBroadcaster und EventListener verschiedene Verwendungsweisen von Funktionen in ActionScript veranschaulicht. Dies wird in den folgenden Schritten erreicht:
  1. Mit dem Konstruktor für FunctionExample wird eine lokale Variable mit dem Namen simpleColl erstellt. Sie wird mit einem Array aus Ganzzahlen gefüllt, die zwischen den Werten 1 und 8 liegen.
  2. Das simpleColl-Objekt wird mithilfe von trace() gedruckt.
  3. Ein EventListener-Objekt, listener, wird zu simpleColl hinzugefügt.
  4. Beim Aufrufen der Funktionen insert() und remove() reagiert der Listener auf ihre Ereignisse.
  5. Es wird ein zweites SimpleCollection-Objekt mit dem Namen greaterThanFourColl erstellt.
  6. Dem greaterThanFourColl-Objekt wird das Ergebnis von simpleColl.select() zusammen mit dem Argument 4 und einer anonymen Funktion zugewiesen. Bei der Auswahlmethode des SimpleCollection-Objekts handelt es sich um einen internen Iterator, der den anonymen Funktionsparameter als Block verwendet.
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);        
    }
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.