Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: class, une introduction avec exemple simple
Envoyé: 19 août 2004, 10h29 par Oznog
La "class" est la base de la programmation orientée objet (POO) et du language ActionScript 2.0. C'est en quelque sorte un "type complexe" comme les "Built-in classs; String, Math ou Date" avec des "membres"; variables, méthodes, proprités, événements, constructeur etc.
La définition d'une classe permet de créer un nouveau type de référence. Et l'objet ou les "instances", créées à partir de ce nouveau "type", peuvent du coup utiliser toutes les fonctionnalités de sa classe. Pour comprendre son implantation il faut savoir qu'une classe permet de concevoir des outils de "conception" portables et complètement indépendants. (Essentiellement une façon de "réutiliser" du code dans une communauté, et d'en optimiser la gestion).
UNE RÈGLE
Le nom donné à une classe est cruciale. On distingue une classe par son "nom" et pas le chemin d'accès (path) physique où elle est installée. Le fichier qui ne contient qu'une seule classe doit porter le même nom que la classe (maClasse devra être sauvée dans un fichier qui porte le nom; "maClasse.as". Avec une seule classe par fichier le nombre de fichiers peut devenir vite considérable. Son nom devient donc l'identification que chacun des concepteurs personnalise par le chemin d'accès à celle-ci. Ainsi, un bon conseil est de regrouper les classes dans un seul dossier.
Exemple :
DÉFINIR LE RÉPERTOIRE DES CLASSES
1. La première des choses à faire est de créer un sous-répertoire (dossier) du répertoire de tes Flashs. Et ouvrir la fenêtre des des propriétés (settings) de publication [ctrl-shift-F12]. Dans l'onglet FLASH sélectionner "ActionScript 2.0" et cliquez le bouton de configuration (settings) de l'ActionScript 2.0.
Dans la nouvelle fenêtre ouverte, spécifier le chemin d'accès au dossier des classes; Cliqer le symbole + puis la cible (cercle et croix) pour sélectionner le répertoire de vos classes. Une fois fait, vos projets Flash chercheront vos classes dans ce dossier. Noter que par défaut, Flash va chercher ses classes dans le répertoire courant, soit celui qui contient le .fla. Mais puisque les Classes sont avant tout des outils "organiseés" pourquoi ne pas bien s'organiser justement.
CRÉATION D'UNE CLASSE
2. Vous pouvez bien sûr utiliser n'importe quel éditeur mais Flash permet de gérer facillement une classe. Créer un nouveau Flash [ctrl-N] et sélectionner le fichier "ActionScript" (file).
Une bonne pratique est de donner en commentaire le nom de la classe sur la première ligne.
// maClasse.as
class maClasse {
function maMethode1() {
trace("Appel de la méthode 1");
}
function maMethode2() {
trace("Appel de la méthode 2");
}
}
Sauver ce document, dans le dossiers de vos classes sous "maClasse.as"
Cette classe et ces deux méthodes qui se contente de faire une trace sont maintenant disponibles dans tout vos nouveau projet Flash.
Créer un nouveau Flash et ajouter sur la première ligne ce code :
// Création d'une instance de la classe maClasse
var oMonObjet:maClasse = new maClasse();
// Utilisation de la méthode 1
oMonObjet.maMethode1();
// Utilisation de la méthode 2
oMonObjet.maMethode2();
Voilà pour la classe simple.
CLASSE AVANCÉES ET ACCESSIBILITÉ
Pour terminer, sachez qu'il y a toute une hiérarchie et une question d'héritage avec les classes. C'est d'ailleurs la force des classes. Changer une classe "parent" permet du coup de modifier l'ensemble de ces enfants. Etc. Ce peut devenir très complexe pour un message de forum mais en gros voici un aperçu de l'accessibilité d'une classe que vous pourriez rencontrer plus fréquemment.
public : l'accès à une classe publique n'est pas limité.
private : son accès est réservé à une classe du même niveau. sachez que ce n'est pas simple... Par exemple puisqu'une classe "public" au peut communiquer avec une classe "private" du même niveau, une classe "externe" peut arriver à communiquer avec la classe "private" en passant par la classe "public". Enfin c'est comme la politique et l'administration.
extends : L'enfant d'une classe mère est dit "étendu". Il hérite entre autres des caractères sde son parent. Voici un exemple "bidon" d'extension de la classe "String" avec un "constructeur".
// chaine.as
class chaine extends String {
var longeur:Number;
// constructeur
function chaine(sTemp:String){
longeur = sTemp.length;
}
}
// Dans le Flash
var sChaine:chaine = new chaine("Allo le monde!");
trace(sChaine.longeur);
Voilà en gros un bon résumé. Reste qu'une classe est essantiellement une façon de "réutiliser" du code et d'en optimiser la gestion.
Ciao
Oznog
Réponses
|