PackageNiveau supérieur
Classepublic dynamic class Function
HéritageFunction Inheritance Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Une fonction constitue l’unité de base du code que vous pouvez appeler dans ActionScript. Les fonctions définies par l'utilisateur et les fonctions intégrées à ActionScript sont représentées par des objets Function, qui sont des occurrences de la classe Function.

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 mis en œuvre la méthode. Pour une fonction, this pointe vers l’objet associé lors de l’appel de la fonction.

Consulter les exemples

Voir aussi

Les méthodes


Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
 Inheritedprototype : Object
[static] Référence à l’objet prototype d’un objet de classe ou fonction.
Object
Méthodes publiques
 MéthodeDéfini par
  
apply(thisObject:Object, argArray:Array = null):void
Spécifie la valeur thisObject à utiliser dans toute fonction appelée par ActionScript.
Function
  
call(thisObject:Object, parameter1:String = null):void
Appelle la fonction représentée par un objet Function.
Function
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
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
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
Détails des méthodes
apply()méthode
AS3 function apply(thisObject:Object, argArray:Array = null):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

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

thisObject:Object — Objet auquel s'applique la fonction.
 
argArray:Array (default = null) — Tableau dont les éléments sont transmis à la fonction en tant que paramètres.

Voir aussi

call()méthode 
AS3 function call(thisObject:Object, parameter1:String = null):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

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

thisObject:Object — Objet qui spécifie la valeur de thisObject dans le corps de la fonction.
 
parameter1:String (default = null) — Paramètre à transmettre à la fonction. Vous pouvez spécifier zéro ou plusieurs paramètres.

Voir aussi

Exemples Utilisation des exemples
FunctionExample.as

L'exemple suivant a recours aux classes FunctionExample, SimpleCollection, EventBroadcaster et EventListener pour présenter les différentes utilisations des fonctions dans ActionScript. Cette opération se déroule selon la procédure suivante :
  1. Le constructeur de FunctionExample crée une variable locale appelée simpleColl, qui est remplie par un tableau d'entiers allant de 1 à 8.
  2. L'objet simpleColl est imprimé à l'aide de la méthode trace().
  3. Un objet EventListener, listener, est ajouté à simpleColl.
  4. Lorsque les fonctions insert() et remove() sont appelées, l'écouteur répond à leurs événements.
  5. Un deuxième objet SimpleCollection est créé sous le nom greaterThanFourColl.
  6. L'objet greaterThanFourColl se voit affecter le résultat de simpleColl.select() avec l'argument 4 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);        
    }
}




 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/Function.html