OOP4AS2#1


Article écrit par Grant Skinner de www.gskinner.com
Traduit par petepx aka Francis Bourre


Classes et instances

Cet article sur les classes et instances est le premier d'une longue série ayant pour thème Actionscript2.0 et la programmation orientée objet.

Je n'ai pas l'intention de réaliser une étude complète mais de proposer plutôt une vue d'ensemble (pour plus d'informations vous pouvez vous procurer le livre Flash MX 2004 Demystified à paraître chez Macromedia Press).
Je ferai une conférence sur ce thème à la Flash Parade de Marseille en Décembre et un exposé plus bref lors de la rencontre Flash User Group à Edmonton le 15 Spetembre.

Passons maintenant aux choses sérieuses ... :)

En ActionScript 2.0, le nouveau mot-clef class nous arrive en grand sauveur, l'époque où nous déclarions nos classes comme de simples fonctions est enfin révolue.
De plus, définir une classe reste un jeu d'enfants, vous avez juste à créer un bloc d'instructions et glisser à l'intérieur les méthodes et propriétés entre deux accolades :

ActionScript:

class GThing {
        // ain't nuthin but a GThing, baby.
        var pureGoodness = true;
        function canIGetSomeLove() {
		        return "love";
		}
}


Je ne rentrerai pas dans les détails concernant le typage et la nouvelle définition des propriétés et méthodes - Ceci sera sujet à un nouvel article. En résumé, on peut dire que les classes sont agréables et faciles d'utilisation, encore faut-il savoir où les définir ...

En AS2.0, chaque classe doit être déclarée dans un fichier externe .as qui doit porter exactement le même nom que la classe qu'il abrite (ex. "GThing.as"). Ce fichier doit être placé à l'intérieur de votre classPath, la méthode la plus simple restant quand même de le laisser dans le même répertoire que votre fichier .fla.

Une fois votre fichier .as sauvé, vous pouvez facilement créer des instances à partir de votre
.fla, exactement comme vous le faisiez en AS1 :

ActionScript:

myGThing = new _GThing();
trace("I got some "+myGThing.canIGetSomeLove());


Flash MX 2004 voit la référence portant vers la classe GThing, et cherche immédiatement dans son classPath un fichier intitulé GThing.as, dés qu'il l'a trouvé il l'importe dans le SWF compilé et rend du même coup la classe disponible pour toute instanciation.

La prochaine fois, nous aborderons la définition des propriétés et méthodes avec typage fort.
Affaire à suivre donc !

Vous pouvez en attendant consulter mes notes du Flash in the Can 2003 sur les concepts élémentaires de la programmation orientée objets.