Création dynamique d'objets en actionscript
Bien qu'il soit possible grâce à l'interface flash de créer ses animations sur la scène, il est parfois nécessaire de placer dynamiquement ses symboles en les créant à la volée; c'est l'objet de ce cours.
Exporter pour actionscript
Dans un premier temps, il faut exporter les éléments souhaités pour actionscript; pour cela, sélectionner le symbole dans la bibliothèque, clic droit > propriétés pour faire apparaître les propriétés du symbole :
Sur cette fenêtre, une checkbox donne la possibilité d'exporter le symbole pour Actionscript, sélectionnez exporter pour actionscript et choisissez un nom de classe. Nous verrons dans la programmation avancée à quoi correspond la classe de base.
Par convention, les noms de classe débutent toujours par une majuscule, puis suivent des minuscules lorsque l'intitulé ne comporte qu'un mot. Dans notre exemple, au symbole ampoule, nous attribuerons le nom de classe Ampoule. Imaginons que la classe soit une ampoule à incandescence, nous mettrons alors une majuscule à chaque première lettre d'un mot, le nom de classe d'un tel symbole serait AmpouleIncandescence.
Une fois le nom de classe dument rempli, cliquez sur ok.
Si vous reprennez l'exemple du cours précédent sur les événements et actions, exportez également l'interrupteur pour Actionscript avec pour nom de classe Interrupteur.
Instancier un symbole
Lorsque qu'en programmation on crée un nouvel objet (ex : on place une ampoule sur la scène), on parle d'instanciation. On désigne par le terme classe le modèle ou symbole, et par le terme objet les occurrences.Si vous n'êtes pas à l'aise avec les notions d'occurrences et symboles, vous pouvez relire la première partie de ce cours.
En résumé, il ne peut y avoir qu'une seule classe (modèle) et de multiples objets (occurrences) de cette classe.
Pour créer un nouvel objet en actionscript (ou ajouter une nouvelle occurrence sur la scène), on utilise le mot clé new , pour l'ampoule, cela donne :
var ampoule = new Ampoule();
Derrière le mot clé new, on place le nom de classe que l'on a définit dans les propriétés du symbole. Notre objet est maintenant crée en mémoire, mais attention, il n'est pas sur la scène, pour l'ajouter :
this.addChild(ampoule);
Nous avons donc dans un premier temps crée un objet ampoule (ou une occurrence du symbole ampoule), puis nous l'avons ajouté dans this (qui correspond au clip courant, ou à la scène si le script est situé sur la scène).
Manipuler un symbole
Une fois l'objet crée, nous avons tout le loisir de manipuler celui-ci grâce à ses propriétés : alpha, x, y etc. Nous pouvons même lui attacher des événements :
//Création d'un nouvel interrupteur
var bt = new Interrupteur();
//On ajoute l'interrupteur sur la scène
this.addChild(bt);
//On modifie ses coordonnées
bt.x = 100;
bt.y = 100;
//Création d'un nouvel objet ampoule
var ampoule = new Ampoule();
//Ajout de l'ampoule sur la scène
this.addChild(ampoule);
//Modification des coordonnées de l'ampoule
ampoule.x = 300;
ampoule.y = 100;
//Création de la fonction allumer/Eteindre
function allumerEteindre(e:Event)
{
var pos = ampoule.currentFrame;
ampoule.gotoAndStop( (pos==1)? 2 : 1 );
}
//On attache l'événement au bouton pour qu'au clic, la fonction allumerEteindre soit appellée
bt.addEventListener(MouseEvent.CLICK,allumerEteindre);












Commentaires