Création de vos propres classes

Le processus de création des classes destinées à vos projets peut paraître rébarbatif. Cependant, la partie la plus difficile de la création d’une classe est la conception de ses méthodes, propriétés et événements.

Stratégies de conception d’une classe

La conception orientée objet est un sujet complexe ; des carrières entières ont été consacrées à l’étude académique et à la pratique professionnelle de cette discipline. Voici tout de même quelques suggestions d’approches qui vous aideront à lancer votre projet.

  1. Réfléchissez au rôle que jouent les occurrences de la classe dans l’application. En règle générale, les objets servent l’un des objectifs suivants :

    • Objet de valeur : ces objets constituent avant tout des conteneurs de données, c’est-à-dire qu’ils possèdent probablement plusieurs propriétés et peu de méthodes (parfois aucune). Il s’agit en général d’une représentation dans le code d’éléments clairement définis, tels qu’une classe Song (représentant une seule chanson) ou une classe Playlist (représentant un groupe conceptuel de chansons) dans une application musicale.

    • Objet d’affichage : ce type correspond à des objets qui s’affichent réellement à l’écran, par exemple des éléments d’interface, tels que des listes déroulantes ou des libellés d’état, des éléments graphiques tels que des créatures dans un jeu vidéo, etc.

    • Structure d’application : ces objets jouent un large éventail de rôles dans la logique ou le traitement effectué par les applications. Il s’agit par exemple d’un objet réalisant des calculs dans une simulation de biologie, un objet chargé de synchroniser les valeurs entre une commande physique et le volume de sortie d’une application musicale, un objet qui gère les règles d’un jeu vidéo ou une classe qui charge une image enregistrée dans une application de dessin.

  2. Décidez de la fonctionnalité requise pour la classe. Les différentes fonctionnalités constituent souvent les méthodes de la classe.

  3. Si la classe est destinée à servir d’objet de valeur, choisissez les données inclues dans les occurrences. Ces éléments peuvent facilement devenir des propriétés.

  4. Puisque vous concevez la classe spécialement pour votre projet, le plus important est que vous établissiez la fonctionnalité nécessaire à votre application. Pour vous aider, vous pouvez répondre à ces questions :

    • Quel type d’informations l’application stocke, surveille et manipule-t-elle ? Vous pourrez alors identifier les objets de valeurs et les propriétés nécessaires.

    • Quels jeux d’actions doivent être exécutés, par exemple lors du premier chargement de l’application, lorsque l’utilisateur clique sur un bouton donné, lorsque la lecture d’un clip s’arrête, etc. ? Ces éléments constituent souvent des méthodes ou des propriétés, si les « actions » consistent à modifier des valeurs isolées.

    • Pour chaque action considérée, quelles informations sont nécessaires pour son exécution ? Ces éléments deviennent les paramètres de la méthode.

    • Pendant le fonctionnement de l’application, quelles modifications, qui doivent être communiquées à d’autres parties de l’application, surviennent dans la classe ? Ces éléments forment en général des événements.

  5. Si un objet existant est semblable à l’objet dont vous avez besoin mais qu’il lui manque certaines fonctionnalités que vous souhaitez ajouter, envisagez de créer une sous-classe (c.-à-d. une classe qui repose sur la fonctionnalité d’une classe existante et dont il n’est pas nécessaire de définir la fonctionnalité propre). Par exemple, pour créer une classe correspondant à un objet affiché à l’écran, appuyez-vous sur le comportement de l’un des objets d’affichage existants (MovieClip ou Sprite, par exemple), qui constituerait alors la classe de base, que votre classe viendrait étendre.

Ecriture du code d’une classe

Une fois que vous avez conçu votre classe ou au moins identifié les informations qu’elle manipulera et les actions qu’elle devra effectuer, l’écriture et la syntaxe à utiliser sont relativement simples.

Voici la procédure minimale de création d’une classe ActionScript :

  1. Ouvrez un nouveau document texte dans un éditeur de texte ActionScript.

  2. Saisissez une instruction class afin de définir le nom de la classe. Pour ce faire, entrez les mots public class puis le nom de la classe, suivi d’une paire d’accolades qui entoureront le contenu de la classe (les définitions de méthode et de propriété). Exemple :

    public class MyClass 
    { 
    }

    Le mot public indique que la classe est accessible par tout autre code. Pour d’autres possibilités, voir Attributs d’espace de noms pour le contrôle d’accès.

  3. Entrez une instruction package pour indiquer le nom du package contenant votre classe. La syntaxe est le mot package, suivi du nom complet du package, puis d’une paire d’accolades (qui entourent l’élément structurel class). Par exemple, modifiez le code précédent comme suit :

    package mypackage 
    { 
        public class MyClass 
        { 
        } 
    }
  4. Définissez chaque propriété de la classe à l’aide de l’instruction var ajoutée dans le corps de la classe. Utilisez la même syntaxe que pour la déclaration d’une variable (en y ajoutant le qualificatif public). Par exemple, les lignes suivantes ajoutées entre les accolades de la définition de classe permettent de créer des propriétés appelées textProperty, numericProperty et dateProperty :

    public var textProperty:String = "some default value"; 
    public var numericProperty:Number = 17; 
    public var dateProperty:Date;
  5. Définissez chaque méthode de la classe à l’aide de la syntaxe utilisée pour définir une fonction. Exemple :

    • Pour créer la méthode myMethod(), saisissez :

      public function myMethod(param1:String, param2:Number):void 
      { 
          // do something with parameters 
      }
    • Pour créer un constructeur (une méthode spéciale appelée pendant la création d’une occurrence de classe), créez une méthode dont le nom correspond exactement au nom de la classe :

      public function MyClass() 
      { 
          // do stuff to set initial values for properties 
          // and otherwise set up the object 
          textVariable = "Hello there!"; 
          dateVariable = new Date(2001, 5, 11); 
      }

      Si vous n’incluez pas de méthode constructeur dans votre classe, le compilateur crée automatiquement un constructeur vide (sans paramètres ni instructions) dans la classe.

    Il est possible de définir d’autres éléments de classe, mais avec plus d’implication.

    • Les accesseurs constituent un croisement spécial entre une méthode et une propriété. Lorsque vous rédigez le code de définition d’une classe, l’accesseur s’écrit comme une méthode. Vous pouvez ainsi accomplir plusieurs actions, et pas seulement la lecture ou l’attribution d’une valeur, seules actions disponibles lors de la définition d’une propriété. Toutefois, lorsque vous créez une occurrence de la classe, vous traitez l’accesseur comme une propriété et utilisez son nom pour lire ou attribuer la valeur.

    • Dans ActionScript, les événements ne sont pas définis à l’aide d’une syntaxe spécifique. Pour définir les événements de la classe, vous utilisez la fonctionnalité de la classe EventDispatcher.