PRATIQUE FLASH 
AS2 : Faire appel aux fonctions imbriquées
 
Combiner fonctions et méthodes pour exploiter les capacités de gestion d'évènements récurrents. (08/11/2005)
En bon langage orienté Objet, ActionScript 2.0 permet de profiter des fonctions imbriquées. Celles-ci correspondent exactement à leur nom : il s'agit de fonctions déclarées dans le corps même d'une méthode de la classe, ou même dans une autre fonction.

Le plus souvent, elles sont utilisées en combinaison avec un appel setInterval(), pour appeler la fonction régulièrement, ou sein d'objet utilisant fortement leurs propriétés de gestion des évènements (Sound(), XML()...).

class Chien {
  public function seReveiller():Void {
    setInterval(avoirFaim, 50000);

    function avoirFaim():Void {
      trace("Ouaf !");
      }

    }
var medor:Chien = new Chien();
medor.seReveiller();


setInterval() n'est pas pour autant nécessaire pour utiliser des fonctions imbriquées : une méthode peut simplement avoir une fonction imbriquée afin d'y concentrer une partie de son code, et être plus lisible, par exemple. A savoir : le code en dehors de la fonction parente n'est pas habilité à exécuter la fonction imbriquée.

  Forum

Réagissez dans les forums de JDN Développeurs

L'un des obstacles possibles est l'impossibilité pour les fonctions imbriquées d'accéder directement à this. La solution est alors de profiter de leur capacité à accéder aux variables locales des fonctions parentes, en stockant une référence à l'objet dans une variable locale, et de se servir de celle-ci comme on le ferait normalement avec this.

var thisChien:Chien = this;
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page