Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Nous allons étudier la structure en objets de l'Actionscript (dont l'abréviation est tout simplement AS).
Je vous parlerai principalement de l'AS 2.0, successeur plus complet, mais plus complexe pour les débutants, de l'AS 1.0 (qui dit AS 2.0, dit nécessité d'utiliser Flash mx, Flash Mx 2004 et même si possible Flash 8 que j'utilise pour écrire ce tutoriel).
Tout langage informatique repose sur la gestion des variables, AS ne déroge pas à la règle.
Les variables sont là pour qu'on leur affecte des valeurs, numériques, textuelles, graphiques, ...
Il faut aussi savoir que chaque instruction en AS se termine par un
; ce qui permet de préciser au compilateur AS que la ligne est finie, et qu'une nouvelle instruction commence.
En AS 2.0, il est fortement conseillé de déclarer les variables, ce qui était très optionnel à l'époque de l'AS 1.0. Il est aussi nécessaire de faire attention aux majuscules et minuscules, car l'AS est sensible à la casse. Ainsi si vous écrivez
mavar et
Mavar, Flash comprendra deux instructions différentes.
Voilà comment attribuer la valeur
5 à la variable
mavar
Code : Autre
Vous noterez que c'est l'opérateur
= qui permet d'attribuer une valeur à une variable. On l'appelle opérateur d'assignement : il assigne la valeur de droite à la variable de gauche.
Vous constatez aussi qu'il est tout à fait autorisé en AS d'ajouter des espaces entre les différentes expressions, ainsi tous ces codes reviennent au même :
Code : Autre1
2
3
| mavar = 5;
mavar=5;
mavar= 5 ; |
Autre point important, il est possible de commenter votre code, et c'est même recommandé.
Deux techniques possibles, utiliser
/* mon commentaire */ sur plusieurs lignes ou
// mon commentaire sur une seule ligne.
Code : Autre1
2
3
| mavar = 5; // On assigne 5 à mavar
/* Je blablate sur
plusieurs lignes */ |
On va maintenant aborder les trois types, ou classes, de variables les plus importantes !
- 1. Number
- 2. String
- 3. Array
1. Type Number
Ce que Flash appelle
Number (majuscule au
N, attention !), ce sont tout simplement les variables contenant des nombres. Voyons comment déclarer une variable
Number :
Code : Autre1
2
3
| var monnombre:Number = new Number(123); //Méthode complète
var monnombre:Number = 123; //Méthode plus simple, mais correcte
monnombre = 123; //Méthode courte, et peu recommandée, car on ne donne pas le type de variable |
Vous remarquerez que seules les deux premières techniques nécessitent l'instruction
var. Ce petit mot permet non seulement de définir précisément le type de la variable, mais supprimera aussi automatiquement la variable une fois que les instructions du bloc auquel appartient la variable seront terminées. Là les variables n'appartiennent à aucun bloc, elle ne seront donc pas supprimées avant la fin de l'animation (les blocs de codes sont délimités par des accolades { } ).
Une fois déclarée dans un type, n'essayez pas d'affecter un autre type de valeur à une variable ! Ça conduirait à une erreur du compilateur.
Voyons ce qu'on peut faire avec ces variables...
Commençons avec les opérations simples :
Code : Autre1
2
3
4
5
6
7
8
9
10
11
| var monnombre:Number = 10; //On déclare monnombre et on lui assigne 10 comme valeur
monnombre = monnombre + 5; // on rajoute 5 à la variable, ce qui donne ... 15 !
monnombre = 10; // Remettons à 10 la variable
monnombre = monnombre - 5; // En toute logique ca donne 5
monnombre = 10; // Une fois déclarée, pas besoin de repréciser que c'est du type Number
monnombre = monnombre * 5 ;// on multiplie par 5 la variable => 50
monnombre = monnombre / 10 ;
/* On avait 50 à la ligne d'avant, on n'a pas remis la variable à 10, on a donc 50 divisé par 10, ce qui fait 5 ! */ |
Mais il existe des opérateurs qui nous simplifient la vie

, il permettent d'éviter de répéter
monnombre à gauche. Prenons un exemple :
Code : Autre1
2
3
| var monnombre:Number = 10;
monombre += 5; // Ca revient au même que monombre = monnombre + 5;
monnombre *= 5; // Même chose que monnombre = monnombre * 5; |
Ça va quand même plus vite, non ?
Bien entendu vous trouverez aussi les opérateurs
-= et
/=, opérateurs d'affectation de soustraction et d'affectation de division.
2. Type String
Le type
String permet le "stockage" de chaînes de caractères, c'est-à-dire de texte.
Les Number s'écrivent directement, mais les String doivent être entourés de guillemets " ou d'apostrophes ' pour que l'ordinateur sache qu'il s'agit de chaînes de caractères.
Déclarons un String, comme toujours dans l'ordre du plus académique au plus fainéant

:
Code : Autre1
2
3
| var machaine:String = new String("Salut la compagnie");
var machaine:String = "Salut la compagnie";
machaine = "Salut la compagnie"; |
En fait, pour les puristes, il faudrait distinguer la première ligne qui construit un objet String et les deux autres qui créent des chaînes littérales. De toute façon Flash convertira votre variable automatiquement si besoin est, donc vous aurez rarement l'occasion de vous en soucier.
Pour les Number, nous avions des opérateurs mathématiques permettant d'effectuer des calculs. Ici pas d'opérateur mathématique, mais un opérateur de
concaténation (beau mot n'est-ce pas ?). La concaténation permet de "coller" deux chaînes de caractères, en Flash on utilise le
+
C'est là que les problèmes commencent pour les maîtres du PHP, car en PHP on utilise le point . pour la concaténation. Alors faites attention !
Exemple :
Code : Autre1
2
| var machaine:String = new String();
machaine = "Salut" + " la compagnie"; // Ce qui donne "Salut la compagnie" |
On aurait aussi pu donner la valeur "Salut" à
machaine puis rajouter le reste après :
Code : Autre1
2
| var machaine:String = "Salut";
machaine = machaine + " la compagnie"; // Ce qui donne aussi "Salut la compagnie" |
Mais cette dernière solution revient au même :
Code : Autre1
2
| var machaine:String = "Salut";
machaine += " la compagnie"; // Ce qui donne encore "Salut la compagnie" |
Supposons maintenant que vous vouliez mettre dans votre texte le caractère
". Ça risque d'être embêtant puisqu'on l'utilise déjà comme caractère délimitant la chaîne...
Encore une fois, on a plusieurs solutions.
On peut utiliser
le caractère d'échappement \, en le plaçant devant le guillemet à échapper. On aurait donc :
Code : Autre1
| var machaine:String = "Il m'a dit \"Bonjour !\" "; |
Ou alors on peut utiliser l'apostrophe pour délimiter le texte, dans ce cas là il faudra échapper les apostrophes

:
Code : Autre1
| var machaine:String = 'Il m\'a dit "Bonjour !" '; |
Voilà déjà un bon morceau de dégrossi.
3. Type Array
Il s'agit tout simplement des tableaux qui permettent de stocker plusieurs valeurs dans des "cases". Je ne ferai pas de théorie là-dessus, pour cela allez jeter un coup d'oeil au cours sur le PHP ou le C++ : les tableaux sont les mêmes partout.
Passons à la pratique :
Code : Autre1
| var montableau:Array = new Array("a", "b", "c"); //Exemple honteusement pompé sur l'aide de Flash :p |
Comment accéder à la deuxième valeur du tableau, c'est à dire "b" ?
Code : Autre1
2
| var montableau:Array = new Array("a", "b", "c");
var machaine:String = montableau[1]; //on place dans "machaine" la deuxième valeur du tableau |
Attends, attends ! Tu nous dit qu'on prend la deuxième valeur, or tu écris montableau[1] ... Pourquoi pas montableau[2] ?
Bonne question, la réponse est simple, la première valeur d'un tableau est le
0. Donc la deuxième c'est
1, et la troisième c'est
2...
Comment connaître le nombre d'entrées dans un tableau ?
Il vous faut utiliser la propriété
length
Code : Autre1
2
| var montableau:Array = new Array("a", "b", "c");
var unnombre:Number = montableau.length; // "unnombre" correspond à 3 |
Vous avez donc pu avoir un aperçu rapide des 3 types de variables les plus utilisées dans Flash. Pour en savoir plus sur elles, allez dans l'aide de Flash, et cherchez les classes "Number", "String" ou encore "Array". Flash vous proposera un nombre très intéressant de fonctions permettant de jouer avec ces variables.
La fonction
trace() est la fonction la plus utile et la plus "puissante" de flash

.
Grâce à elle vous pourrez aisément construire, vérifier et débugger vos scripts. Depuis tout à l'heure nous faisons de la théorie pure sur les variables, car vous n'avez aucun moyen de connaître la valeur d'une variable à la fin d'un calcul ou d'une concaténation.
trace() va répondre à vos attentes !
Pour commencer créez une nouvelle scène vide et tapez dans l'onglet action :
Code : Autre
Vous constatez que comme dans tous les langages de types fonctionnels (C, php, presque tous quoi...), on passe les variables à la fonction grâce aux parenthèses et on finit chaque ligne de code par un
; (ça c'est pas nouveau

).
Chaque fonction peut requérir un certain nombre "d'arguments", c'est-à-dire de variables qu'on passe par les parenthèses et qui sont séparées par des virgules.
trace() n'accepte par exemple qu'un seul argument.
Rappel : les chaînes de caractères doivent être délimitées par des guillemets ou des apostrophes, tout comme en PHP ou en JavaScript.
Si vous exécutez cette animation, vous constaterez que Flash ouvre une fenêtre nommée
Sortie. C'est dans cette fenêtre que s'affichera le contenu de toutes les variables que vous passerez à la fonction trace.
Nous allons maintenant passer aux opérations numériques.
Tapez dans l'onglet action :
Code : Autre1
2
| var resultat:Number = 5 + 5;
trace("Le résultat est : "+resultat); //Affiche 10 bien sûr |
Le code ci-dessus n'est pas très "beau" du point de vue sémantique, car on concatène une chaîne littérale avec un nombre... Flash, intelligent comme il est, fait la conversion tout seul. Mais il aurait été préférable de convertir resultat en texte en utilisant cette méthode : resultat.toString(). On aurait alors eu : trace("Le résultat est : "+resultat.toString());
Maintenant, voyons comment la fenêtre de sortie peut s'afficher toute seule en cas d'erreur sans faire appel à la fonction
trace().
Essayons :
Code : Autre1
2
| var resultat:Number = 5+5;
resultat = "salut"; //Horreur, une chaîne de caractères sur une variable Number ! |
La fenêtre de sortie va alors afficher une erreur du type incompatibilité de type de variable. En effet nous affectons une chaîne de caractères (type « String ») à une variable que nous avions définie de type « Number ».
Pour coder de façon propre il est conseillé de définir chaque variable avant de l'utiliser, mais vous verrez que cela n'est pas toujours nécessaire et j'espère que vous voudrez bien m'excuser de ne pas tout le temps le faire.
C'est tout ce qu'il y a à savoir sur la fonction trace(), la première fonction à maîtriser, et celle qui vous permettra de comprendre pourquoi ce fout** de put*** de bon de D** de code ne fonctionne pas.