Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > ActionScript / Flash / Flex > Introduction à l'ActionScript > Les bases de l'actionscript > Variables et fonction trace() > Lecture du tutoriel

Variables et fonction trace()

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)
Avatar
Auteur : SuprazZz
Note : 18 / 20 (6 votes)
Visualisations : 33 266

Plus d'informations Plus d'informations
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).
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Structure et commentaires

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
1
mavar = 5;


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 : Autre
1
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 : Autre
1
2
3
mavar = 5; // On assigne 5 à mavar
/* Je blablate sur
plusieurs lignes */

Types de variables : Number, String et Array

On va maintenant aborder les trois types, ou classes, de variables les plus importantes !

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 : Autre
1
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 : Autre
1
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 : Autre
1
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 ? :D
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 :D :

Code : Autre
1
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 : Autre
1
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 : Autre
1
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 : Autre
1
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 : Autre
1
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 : Autre
1
var machaine:String = 'Il m\'a dit "Bonjour !" ';



Voilà déjà un bon morceau de dégrossi. :p

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 : Autre
1
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 : Autre
1
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 : Autre
1
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.

Fonction trace()

La fonction trace() est la fonction la plus utile et la plus "puissante" de flash :D .
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 ! :p

Pour commencer créez une nouvelle scène vide et tapez dans l'onglet action :

Code : Autre
1
trace("Hello World !");


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 : Autre
1
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 : Autre
1
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. :D

Récapitulatif des opérateurs

TypeOpérateurNomSignificationExemple
tous
=
Assignement Affecte une valeur à la variable mavar=5;
Number
+
Addition Effectue l'addition entre deux nombres monnombre=10+5;
Number
+=
Addition et assignement Effectue l'addition entre la variable et un nombre et affecte la nouvelle valeur à la variable (revient à utiliser monnombre=monnombre+5;) monnombre+=5;
Number
++
Incrémentation Incrémente la variable, c'est à dire augmente sa valeur de 1 monnombre++;
Number
-
Soustraction Effectue la soustraction entre deux nombres monnombre=10-5;
Number
-=
Soustraction et assignement Effectue la soustraction entre la variable et un nombre et affecte la nouvelle valeur à la variable (revient à utiliser monnombre=monnombre-5;) monnombre-=5;
Number
--
Décrémentation Décrémente la variable, c'est à dire réduit sa valeur de 1 monnombre--;
Number
*
Multiplication Effectue la multiplication entre deux nombres monnombre=10*5;
Number
*=
Multiplication et assignement Effectue l'addition entre la variable et un nombre et affecte la nouvelle valeur à la variable (revient à utiliser monnombre=monnombre*5;) monnombre*=5;
Number
/
Division Effectue la division entre deux nombres (attention, il ne s'agit pas d'une division euclidienne, mais bien d'une division décimale) monnombre=10/5;
Number
/=
Division et assignement Effectue l'addition entre la variable et un nombre et affecte la nouvelle valeur à la variable (revient à utiliser monnombre=monnombre/5;) monnombre/=5;
Number
%
Modulo Renvoie le reste de la division entière de deux nombres monnombre=10%5;
Number
%=
Modulo et assignement Effectue le modulo entre la variable et un nombre et affecte la nouvelle valeur à la variable (revient à utiliser monnombre=monnombre%5;) monnombre%=5;
String
+
Concaténation Concatène deux chaînes de caractères. C'est-à-dire que l'opérateur va "coller" les deux chaînes pour n'en faire qu'une monstring="salut"+" tout le monde";
String
+=
Concaténation et assignement Concatène la variable avec la chaîne de caractères après l'opérateur et assigne la nouvelle chaîne à la variable (revient à utiliser monstring = monstring+" tout le monde";) monstring+=" tout le monde";

Q.C.M.

Quelle est parmi ces solutions, celle qui permet d'assigner la valeur numérique 123 à la variable monnombre de façon à ne pas laisser de doute sur le type de la variable, mais sans alourdir trop le code de façon inutile ?
Quelle sera la valeur numérique de <gras>monnombre</gras> à la fin du script :

<code>
var monnombre:Number = 10;
monnombre = monnombre + 5;
monnombre -= 10;
</code>

<gras>Interdit de tricher en utilisant trace() ! :D </gras>
Quelle sera la valeur numérique de monnombre à la fin du script :

Code : Autre
1
2
3
4
var monnombre:Number = 10;
monnombre = monnombre + 5;
monnombre -= 10;
trace(monnombre+5);
Qu'affichera la fenêtre de sortie avec ce code ?

Code : Autre
1
2
3
var machaine:String = "salut";
machaine += machaine + " les Zéros";
trace(machaine);
Quelle est la meilleure solution pour afficher dans la fenêtre de sortie le caractère "e" (sans écrire trace("e"); bien entendu ;) ) ?

Code : Autre
1
var montableau:Array = new Array("a", "b", "c", "d", "e", "f");

Statistiques de réponses au QCM


Comme vous avez pu le constater dans cette partie, l'ActionScript ne diffère des autres langages que par une plus grande simplicité encore. Malgré tout, Flash vous offre beaucoup de possibilités. Je ne peux donc que vous conseiller de souvent visiter l'aide, qui vous permettra de vous en sortir souvent sans aller demander du secours sur les forums. :p
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 30/11/2005 à 19:39:43
Modifié : le 22/08/2008 à 15:52:50
Avancement : 100%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 690 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0367s (0.02s)