Paket | Översta nivån |
Klass | public final class Function |
Arv | Function Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Metoder av en klass skiljer sig något från Function-objekt. Till skillnad från vanliga funktionsobjekt är en metod tätt sammanlänkad med det associerade klassobjektet. En metod eller egenskap har därför en definition som delas av alla instanser av samma klass. Metoder kan extraheras från en instans och behandlas som "bundna" metoder (länken till den ursprungliga instansen finns kvar). För en bunden metod pekar nyckelordet this
på det ursprungliga objektet som implementerade metoden. När det gäller en funktion pekar this
på det associerade objektet när funktionen anropas.
Metod | Definieras med | ||
---|---|---|---|
Anger värdet för thisObject som ska användas med en funktion som ActionScript anropar. | Function | ||
Anropar funktionen som representeras av ett Function-objekt. | Function | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object |
apply | () | metod |
AS3 function apply(thisArg:*, argArray:*):*
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Anger värdet för thisObject
som ska användas med en funktion som ActionScript anropar. Denna metod anger också vilka parametrar som ska överföras till alla anropade funktioner. Eftersom apply()
är en metod i klassen Function är det också en metod i alla Function-objekt i ActionScript.
Parametrarna anges i form av ett Array-objekt, till skillnad från Function.call()
som anger parametrar i form av en kommaavgränsad lista. Detta är ofta praktiskt när antalet parametrar som ska överföras inte blir känt förrän skriptet körs.
Returnerar värdet som den anropade funktionen anger som returvärde.
Parametrar
thisArg:* (default = NaN ) — Det objekt som funktionen tillämpas på.
| |
argArray:* (default = NaN ) — En array vars element skickas till funktionen som parametrar.
|
* — Värden som den anropade funktionen anger.
|
Relaterade API-element
call | () | metod |
AS3 function call(thisArg:*, ... args):*
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Anropar funktionen som representeras av ett Function-objekt. Alla funktioner i ActionScript representeras av ett Function-objekt och alla funktioner har stöd för den här metoden.
I nästan alla fall kan funktionsanropsoperatorn (()
) användas i stället för den här metoden. Funktionsanropsoperatorn skapar kod som är kortfattad och läsbar. Den här metoden används i första hand när parametern thisObject
för funktionsanropet behöver kontrolleras. Om en funktion startas som en metod för ett objekt får thisObject
värdet myObject
i funktionstexten, vilket visas i följande exempel:
myObject.myMethod(1, 2, 3);
I vissa fall kanske du vill att thisObject
ska peka på något annat, till exempel om en funktion måste startas som en metod för ett objekt men inte har lagrats som en metod för detta objekt:
myObject.myMethod.call(myOtherObject, 1, 2, 3);
Du kan överföra värdet null
för parametern thisObject
för att starta en funktion som en vanlig funktion, i stället för en metod för ett objekt. Följande funktionsanrop är likvärdiga:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Returnerar värdet som den anropade funktionen anger som returvärde.
Parametrar
thisArg:* (default = NaN ) — Ett objekt som anger värdet för thisObject i funktionstexten.
| |
... args — Parametern eller parametrarna som ska skickas till funktionen. Du kan ange noll eller flera parametrar.
|
* |
Relaterade API-element
FunctionExample
, SimpleCollection
, EventBroadcaster
och EventListener
hur funktionerna i ActionScript kan användas. Detta visas i följande steg:
- Konstruktorn för
FunctionExample
skapar en lokal variabel med namnetsimpleColl
med en heltalsarray med heltal från1
till8
. - Objektet
simpleColl
skrivs ut medtrace()
. - Ett EventListener-objekt,
listener
, läggs till isimpleColl
. - När funktionerna
insert()
ochremove()
anropas svarar avlyssnaren på funktionernas händelser. - Ett andra SimpleCollection-objekt skapas med namnet
greaterThanFourColl
. - Objektet
greaterThanFourColl
tilldelas resultatet avsimpleColl.select()
med argumentet4
och en anonym funktion. SimpleCollection-objektets select-metod är en intern iterator som använder den anonyma funktionsparametern som ett block.
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, 01:40 PM Z