Pakket | Hoofdniveau |
Klasse | public final class Function |
Overerving | Function Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Methoden van een klasse zijn iets anders dan objecten Function. In tegenstelling tot een standaard object Function, is een methode bijna onlosmakelijk verbonden met het hieraan gekoppelde klasseobject. Daarom bevat een methode of eigenschap een definitie die wordt gedeeld door alle instanties van dezelfde klasse. Methoden kunnen uit een instantie worden geëxtraheerd en als 'gebonden' methoden worden behandeld (ze behouden de koppeling naar de oorspronkelijke instantie). Voor een gebonden methode, verwijst het trefwoord this
naar het oorspronkelijke object dat de methode heeft geïmplementeerd. Voor een functie, verwijst het trefwoord this
naar het gekoppelde object op het tijdstip dat de functie is aangeroepen.
Methode | Gedefinieerd door | ||
---|---|---|---|
Geeft de waarde van thisObject op die moet worden gebruikt binnen elke functie die door ActionScript wordt aangeroepen. | Function | ||
Roept de functie aan die door een object Function wordt vertegenwoordigd. | Function | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object |
apply | () | methode |
AS3 function apply(thisArg:*, argArray:*):*
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft de waarde van thisObject
op die moet worden gebruikt binnen elke functie die door ActionScript wordt aangeroepen. Deze methode geeft ook de parameters op die moeten worden doorgegeven aan elke functie die wordt aangeroepen. Omdat apply()
een methode is van de klasse Function, is het ook een methode van elk object Function in ActionScript.
De parameters worden als een object Array opgegeven, in tegenstelling tot Function.call()
, die parameters als een door komma's gescheiden lijst opgeeft. Dit is met name nuttig wanneer het aantal parameters dat moet worden doorgegeven onbekend is totdat het script daadwerkelijk wordt uitgevoerd.
Retourneert de waarde die de aangeroepen functie als geretourneerde waarde opgeeft.
Parameters
thisArg:* (default = NaN ) — Het object waarop de functie wordt toegepast.
| |
argArray:* (default = NaN ) — Een array waarvan de elementen als parameters aan de functie worden doorgegeven.
|
* — Elke waarde die de aangeroepen functie opgeeft.
|
Verwante API-elementen
call | () | methode |
AS3 function call(thisArg:*, ... args):*
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Roept de functie aan die door een object Function wordt vertegenwoordigd. Elke functie in ActionScript wordt door een object Function vertegenwoordigd, zodat alle functies deze methode ondersteunen.
In bijna alle gevallen kan de functieaanroepoperator (()
) worden gebruikt in plaats van deze methode. De functieaanroepoperator produceert beknopte en leesbare codes. Deze methode is met name nuttig wanneer de parameter thisObject
van de functieaanroep expliciet moet worden bestuurd. Wanneer normaliter een functie wordt aangeroepen als een methode van een object binnen deze functie, wordt thisObject
op myObject
ingesteld, zoals in het volgende voorbeeld wordt getoond:
myObject.myMethod(1, 2, 3);
In sommige gevallen wilt u thisObject
mogelijk ergens anders naar laten verwijzen, bijvoorbeeld wanneer een functie moet worden aangeroepen als een methode van een object, maar die functie niet als een methode van dat object is opgeslagen:
myObject.myMethod.call(myOtherObject, 1, 2, 3);
U kunt de waarde null
voor de parameter thisObject
doorgeven om een functie aan te roepen als een standaardfunctie en niet als een methode van een object. De onderstaande functieaanroepen zijn bijvoorbeeld gelijk:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Retourneert de waarde die de aangeroepen functie als geretourneerde waarde opgeeft.
Parameters
thisArg:* (default = NaN ) — Een object dat de waarde van thisObject opgeeft binnen de hoofdtekst van de functie.
| |
... args — De parameter die aan de functie wordt doorgegeven. U kunt nul of meer parameters opgeven.
|
* |
Verwante API-elementen
FunctionExample
, SimpleCollection
, EventBroadcaster
en EventListener
om te tonen hoe u op verschillende manieren van de functies in ActionScript gebruik kunt maken. Dit wordt gedaan door de volgende stappen te volgen:
- De constructor voor
FunctionExample
maakt een lokale variabele met de naamsimpleColl
, die wordt gevuld met een array van gehele getallen, in het bereik van1
tot8
. - Het object
simpleColl
wordt afgedrukt met gebruik vantrace()
. - Het EventListener-object
listener
wordt toegevoegd aansimpleColl
. - Wanneer de functies
insert()
enremove()
worden aangeroepen, reageert de listener op de gebeurtenissen. - Een tweede object SimpleCollection wordt gemaakt, met de naam
greaterThanFourColl
. - Het object
greaterThanFourColl
krijgt het resultaat toegewezen vansimpleColl.select()
met het argument4
en een anonieme functie. De selectiemethode van het object SimpleCollection is een interne iterator die de anonieme functieparameter als een blok gebruikt.
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); } }
Wed Jun 13 2018, 11:42 AM Z