vendredi 27 novembre 2009

Actionscript import flash.display addChild Manipuler dynamiquement des occurrences de clips

Manipuler dynamiquement des occurrences de clips avec AS3

Dans Flash CS3 il y a plusieurs manières de travailler directement avec des occurrences de clips.

La plus classique est de nommer l'occurrence d'un clip placée sur un scénario, en passant par l'inspecteur de propriétés de cette occurrence.

Avec ActionScript AS3 on va le plus souvent procéder autrement afin de piloter dynamiquement les occurrences à partir d'un fichier de code externe « .as ».

Copiez sur votre disque puis ouvrez le fichier « perso_01.fla ». Il contient seulement un clip de bibliothèque (un personnage vectoriel).

Sélectionnez le clip directement dans la bibliothèque puis ouvrez le panneau « liaison » dans le menu déroulant de la bibliothèque, ou bien par clic droit sur l'icône de ce clip. Le panneau « propriétés de liaison » apparaît. Cochez la case « exportez pour ActionScript ».

Le panneau se modifie comme suit : Flash donne à la classe qu'il associe au clip le nom du clip. Il est préférable de conserver cette logique. Il définit par défaut la classe associée. Celle-ci est ici la classe MovieClip. Conservez la case cochée « exporter dans la première image ».

Vérifiez dans le panneau de propriétés de l'animation que votre animation est bien liée à la classe « perso_01 » (case « classe du document »). Créez maintenant un nouveau fichier ActionScript que vous nommerez immédiatement « perso_01.as ».

Fenêtre propriétés de lien de Flash
Fenêtre propriétés de lien de Flash
Commencez par inclure la classe d'affichage des objets sur la scène :
package {
import flash.display.*;

Créez ensuite une classe publique « perso_01 » liée à la classe interne « MovieClip »
public class perso_01 extends MovieClip {

Créez ensuite une fonction constructeur publique « perso_01 »
public function perso_01() {
var monPerso:MC_perso = new MC_perso ();
addChild (monPerso);

Nous avons d'abord créée une occurrence « monPerso » de la classe exportée à partir du clip. Ensuite nous ajoutons cette occurrence à la liste d'affichage grâce à « addChild ».

Ce qui donne le code complet :
package {
import flash.display.*;
public class perso_01 extends MovieClip {
public function perso_01() {
var monPerso:MC_perso = new MC_perso ();
addChild (monPerso);
}
}
}

Enregistrez votre fichier de code afin de valider votre script. Sélectionnez l'onglet de l'animation « perso_01.fla » et testez par Ctrl + entrée.

REMARQUE
vous devez tester depuis l'animation et non depuis le fichier de code.
Il faut veiller à enregistrer les dernières modifications avec de publier.

Vous devez visualiser seulement une partie du personnage, en haut à gauche de la scène. En effet, par défaut l'occurrence du clip créée a pour coordonnées (0,0). Donc le centre de l'occurrence coïncide avec le coin supérieur gauche de la scène.
Nous allons maintenant ajouter des lignes de code dans la fonction constructeur afin de déplacer l'occurrence et de réduire son échelle d'affichage:

public function perso_01() {
var monPerso2:MC_perso = new MC_perso ();
monPerso.x = 150;
monPerso.y = 120;
monPerso.scaleX = .7;
monPerso.scaleY = .7;
addChild (monPerso);
}

COMMENTAIRES CODE AS3

accès aux coordonnées :

monOccurrence.x pour la coordonnée x de monOccurrence
monOccurrence.y
pour la coordonnée y de monOccurrence

accès à l'échelle :

monOccurrence.scaleX pour l'échelle de la largeur de monOccurrence (nombre décimal entre 0 et 1, valeur 1 = 100% de la largeur d'origine);

monOccurrence.scaleY pour l'échelle de la hauteur de monOccurrence (idem)

ATTENTION :
EN ACTIONSCRIPT AS3 on ne fait plus précéder les méthode d'un underscore.

Enregistrez votre fichier de code afin de valider votre script. Testez par Ctrl + entrée.

Aucun commentaire: