Package | Niveau supérieur |
Classe | public final class Function |
Héritage | Function Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Les méthodes d’une classe sont légèrement différentes des objets Function. A l’encontre d’un objet Function standard, une méthode est étroitement liée à l’objet de classe associé. De ce fait, une méthode ou une propriété possède une définition partagée par toutes les occurrences d’une même classe. Les méthodes peuvent être extraites d’une occurrence et traitées comme si elles étaient « liées » (en d’autres termes, comme des méthodes qui conservent le lien à l’occurrence d’origine). Pour une méthode liée, le mot-clé this
pointe vers l’objet d’origine qui a implémenté la méthode. Pour une fonction, this
pointe vers l’objet associé lors de l’appel de la fonction.
Méthode | Défini par | ||
---|---|---|---|
Spécifie la valeur thisObject à utiliser dans toute fonction appelée par ActionScript. | Function | ||
Appelle la fonction représentée par un objet Function. | Function | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
apply | () | méthode |
AS3 function apply(thisArg:*, argArray:*):*
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spécifie la valeur thisObject
à utiliser dans toute fonction appelée par ActionScript. Cette méthode spécifie également les paramètres à transmettre à toute fonction appelée. Dans la mesure où apply()
est une méthode de la classe Function, c’est également une méthode de chaque objet Function dans ActionScript.
Les paramètres sont spécifiés sous forme d’objet Array, contrairement à Function.call()
qui spécifie les paramètres en tant que liste délimitée par des virgules. Ceci est souvent utile lorsque le nombre de paramètres à transmettre n’est pas connu avant l’exécution du script.
Renvoie la valeur spécifiée en tant que valeur renvoyée par la fonction appelée.
Paramètres
thisArg:* (default = NaN ) — Objet auquel s’applique la fonction.
| |
argArray:* (default = NaN ) — Tableau dont les éléments sont transmis à la fonction en tant que paramètres.
|
* — Toute valeur spécifiée par la fonction appelée.
|
Eléments de l’API associés
call | () | méthode |
AS3 function call(thisArg:*, ... args):*
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Appelle la fonction représentée par un objet Function. Toutes les fonctions dans ActionScript sont représentées par un objet Function, de sorte que toutes les fonctions prennent en charge cette méthode.
Dans presque tous les cas, l’opérateur d’appel de fonction (()
) peut être utilisé au lieu de cette méthode. L’opérateur de la fonction call génère un code concis et lisible. Cette méthode est surtout utile lorsque le paramètre thisObject
de l’appel de fonction doit être explicitement contrôlé. Normalement, si une fonction est appelée en tant que méthode d’un objet, dans le corps de la fonction, thisObject
est défini sur myObject
, comme illustré dans l’exemple suivant :
myObject.myMethod(1, 2, 3);
Dans certains cas, il peut être souhaitable que thisObject
pointe autre part ; par exemple, si une fonction doit être appelée en tant que méthode d’un objet alors qu’elle n’est pas stockée comme méthode de cet objet :
myObject.myMethod.call(myOtherObject, 1, 2, 3);
Vous pouvez transmettre la valeur null
au paramètre thisObject
pour appeler une fonction en tant que fonction ordinaire et non en tant que méthode d’un objet. Par exemple, les appels de fonction suivantes sont équivalentes :
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Renvoie la valeur spécifiée en tant que valeur renvoyée par la fonction appelée.
Paramètres
thisArg:* (default = NaN ) — Objet qui spécifie la valeur de thisObject dans le corps de la fonction.
| |
... args — Paramètre ou paramètres à transmettre à la fonction. Vous pouvez spécifier zéro ou plusieurs paramètres.
|
* |
Eléments de l’API associés
FunctionExample
, SimpleCollection
, EventBroadcaster
et EventListener
pour présenter les différentes utilisations des fonctions dans ActionScript. Cette opération s’accomplit de la façon suivante :
- Le constructeur de
FunctionExample
crée une variable locale appeléesimpleColl
, qui est remplie par un tableau d’entiers allant de1
à8
. - L’objet
simpleColl
est imprimé à l’aide de la méthodetrace()
. - Un objet EventListener,
listener
, est ajouté àsimpleColl
. - Lorsque les fonctions
insert()
etremove()
sont appelées, l’écouteur répond à leurs événements. - Un deuxième objet SimpleCollection est créé sous le nom
greaterThanFourColl
. - L’objet
greaterThanFourColl
se voit affecter le résultat desimpleColl.select()
avec l’argument4
et une fonction anonyme. La méthode de sélection de l’objet SimpleCollection est un itérateur interne qui utilise le paramètre de fonction anonyme en tant que bloc.
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, 09:30 AM Z