Paket | Oberste Ebene |
Klasse | public final class Function |
Vererbung | Function Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
Methode | Definiert von | ||
---|---|---|---|
Gibt den Wert von thisObject an, der in sämtlichen von ActionScript aufgerufenen Funktionen verwendet werden soll. | Function | ||
Ruft die durch ein Function-Objekt dargestellte Funktion auf. | Function | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
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.
|
* — 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.
|
* |
Verwandte API-Elemente
FunctionExample
, SimpleCollection
, EventBroadcaster
und EventListener
verschiedene Verwendungsweisen von Funktionen in ActionScript veranschaulicht. Dies wird in den folgenden Schritten erreicht:
- Mit dem Konstruktor für
FunctionExample
wird eine lokale Variable mit dem NamensimpleColl
erstellt. Sie wird mit einem Array aus Ganzzahlen gefüllt, die zwischen den Werten1
und8
liegen. - Das
simpleColl
-Objekt wird mithilfe vontrace()
gedruckt. - Ein EventListener-Objekt,
listener
, wird zusimpleColl
hinzugefügt. - Beim Aufrufen der Funktionen
insert()
undremove()
reagiert der Listener auf ihre Ereignisse. - Es wird ein zweites SimpleCollection-Objekt mit dem Namen
greaterThanFourColl
erstellt. - Dem
greaterThanFourColl
-Objekt wird das Ergebnis vonsimpleColl.select()
zusammen mit dem Argument4
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); } }
Tue Jun 12 2018, 10:04 AM Z