Aller au contenu | Aller au menu | Aller à la recherche

Site membre du réseau Izardev et LCNET

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);

Téléchargement des fichiers de travail

Partagez cet article !

  • Delicious
  • Stumbleupon
  • Digg
  • Facebook
  • Google
  • Linkedin
  • Yahoo Buzz
  • Twitter
Vous avez apprécié cet article ?

Commentaires S'abonner au flux RSS des commentaires

Ajouter un commentaire

Les commentaires sont tous validés par un modérateur, votre commentaire n'apparaît pas directement sur le site.
Aucun support n'est assuré ici, vous pouvez néanmoins laisser vos remarques et critiques sur l'article, les points de vue pertinents sont toujours les bienvenus.