• Aucun résultat trouvé

Comme nous l'avons vu, la boucle for est particulièrement bien adaptée au parcours d'un tableau. Pour rappel, voici un exemple de manipulation de ce type de boucle :

Code : Actionscript

var monTableau:Array = ["élément n°1", "élément n°2", "élément n°3", "élément n°4"];

for(var i:int = 0; i < monTableau.length; i++) { trace(monTableau[i]); } Ce qui affichera : Code : Console élément n°1 élément n°2 élément n°3 élément n°4

Dans une boucle for classique, nous nous basons donc sur l'indice, ou la position, des différents éléments à l'intérieur du tableau. Pour cela, nous avons alors besoin de connaître la longueur de celui-ci, que nous pouvons d'ailleurs stocker dans une variable :

Code : Actionscript

var monTableau:Array = ["élément n°1", "élément n°2", "élément n°3", "élément n°4"];

var longueur:int = monTableau.length;

for(var i:int = 0; i < longueur; i++) {

trace(monTableau[i]); }

Cependant il est également possible d'utiliser d'autres boucles, où la connaissance de la longueur d'un tableau devient superflue ; j'ai nommé les boucles for...in et for each !

La boucle for...in

La boucle for...in est très proche de la boucle for classique, et s'utilise quasiment de la même manière. Toutefois ici, il n'est pas nécessaire de connaître le nombre d'éléments contenus dans un tableau pour parcourir l'intégralité de ce dernier.

Voici un exemple d'utilisation de cette boucle :

Code : Actionscript

var monTableau:Array = ["élément n°1", "élément n°2", "élément n°3", "élément n°4"];

for(var i:String in monTableau) {

trace(monTableau[i]); }

Ce qui nous affichera comme précédemment :

élément n°1 élément n°2 élément n°3 élément n°4

Ainsi vous pouvez considérer que dans une boucle for...in la variable se comporte comme un indice qui s'incrémente automatiquement et qui parcourt l'intégralité du tableau.

Il est fort probable que certains d'entre vous se demandent alors, pourquoi diable, la variable i est-elle de type

String et non de type int ?

Pour comprendre cela, nous allons devoir brièvement sortir du cadre de ce chapitre. En réalité la boucle for...in n'est pas propre aux tableaux, mais peut être utilisée pour parcourir d'autres types d'éléments ou objets...

Pour cerner le problème par un exemple, nous allons imaginer l'objet ou la variable suivante :

Code : Actionscript

var monObjet:Object = {a:"élément A", b:"élément B", c:"élément C"};

Nous avons donc ici une sorte de tableau contenant trois éléments. Néanmoins, ces éléments ne sont pas rangés à l'aide d'un indice, mais plutôt grâce à une étiquette ou propriété et ne sont donc pas disposés suivant un ordre particulier. La seule manière de faire référence à un élément à l'intérieur de cette variable est donc d'utiliser les étiquettes associées à chacun de ces éléments. L'utilisation de la boucle for...in prend alors tout son sens :

Code : Actionscript

for(var i:String in monObjet) { trace(i + ": " + monObjet[i]); } Voici le résultat : Code : Console a: élément A b: élément B c: élément C

Pour utiliser correctement la boucle for...in, vous devez vous rappeler qu'à l'intérieur de celle-ci nous travaillons non pas à l'aide d'un indice numérique mais bien avec une étiquette sous forme de chaîne de caractères. Dans le cas d'un tableau de type Array ou Vector, la variable utilisée représente néanmoins l'indice, mais toujours sous la forme d'une chaîne de caractères de type String !

La boucle for

each

La dernière boucle permettant de parcourir un tableau est la boucle for each. Contrairement à ses congénères, la variable utilisée à l'intérieur de celle-ci ne fait pas référence à l'indice, ou l'étiquette, associé aux éléments d'un tableau, mais aux éléments eux-mêmes.

La manipulation des éléments devient alors beaucoup plus simple :

var monTableau:Array = [12, 42, 10, 3];

for each(var nombre:int in monTableau)

{

trace(nombre); }

Comme vous l'imaginez, dans ce cas, le type de la variable devra s'adapter suivant la nature des éléments contenus à l'intérieur du tableau :

Code : Actionscript

var monTableau:Array = [2.3, 24567673, 42, 3.14, 276.54];

for each(var nombre:Number in monTableau)

{

trace(nombre); }

Ou encore :

Code : Actionscript

var monTableau:Array = ['Hello', 'world', '!'];

for each(var chaine:String in monTableau)

{

trace(chaine); }

Notez toutefois qu'en utilisant cette boucle vous perdez la notion de repérage à l'intérieur du tableau, et vous n'êtes alors plus en mesure de relier l'élément au tableau.

Bien évidemment ce qui est faisable avec un tableau de type Array, l'est aussi avec un autre tableau de type Vector :

Code : Actionscript

var monVecteur:Vector.<String> = Vector.<String>(['Hello', 'world', '!']);

for each(var chaine:String in monVecteur)

{

trace(chaine); }

En résumé

Grâce aux tableaux, nous pouvons stocker plusieurs valeurs sous un même nom de variable. Les éléments d'un tableau sont accessibles via un indice qui démarre à 0.

Les tableaux de type Array ne sont ni fixés, ni typés.

Les tableaux de type Vector ne sont pas fixés, mais en revanche ils sont typés.

Différentes méthodes permettent de manipuler des tableaux à la fois de Array et de type Vector. On utilise généralement les boucles for, for...in ou for each pour parcourir un tableau. Il est possible de créer des tableaux multidimensionnels en utilisant une notation à double indice.

Partie 2 : La programmation orientée objet

Maintenant que vous êtes au point sur les bases du langage, il est temps d'affronter le gros morceau de ce cours : la Programmation Orientée Objet.

C'est une partie très importante pour programmer en Actionscript 3, donc prenez votre temps et n'hésitez pas à la relire !

La POO dans tous ses états

Nous allons maintenant attaquer la deuxième partie du cours, traitant d'une notion très importante en Actionscript 3 : la

Programmation Orientée Objet (ou POO).

Appréhender cette notion sera peut-être difficile au début, mais vous finirez par tomber sous le charme de cette façon de programmer, c'est promis !

Cette partie sera également l'occasion de faire (enfin) un peu de pratique à l'occasion de quelques exercices que nous réaliserons ensemble.

Attachez vos ceintures, c'est parti ! La POO n'aura bientôt plus aucun secret pour vous !

Documents relatifs