Utilisation des tableaux de données, la classe Array

Créer et utiliser les tableaux de données, "Array", en ActionScript 3 (AS3)

Un tableau est une strucutre de données pouvant contenir plusieurs valeurs individuelles, de même qu'une étagère est une structure physique comprenant plusieurs compartiments. Contrairement à une variable, le tableau peut contenir plusieurs valeurs.
La classe ActionScript utilisée est la classe Array. On peut représenter les tableaux comme une liste verticale de données placées dans la mémoire du Flash Player. En prenant un exemple de la vie courante, on peut imaginer stocker dans un tableau, la liste de toutes les agences d'une banque.

La visualisation du tableau pourrait être celle-ci :
Agence d'Angers
Agence de Bordeaux
Agence de Cahors
Agence de Lens
Agence de Paris
Agence de Nantes
Agence de Rennes

Création de tableaux

On peut créer un tableau vide et l'alimenter par la suite ou créer et alimenter le tableau en même temps

Actionscript:
  1. var tableau1:Array = new Array(); //le tableau créé est vide
  2. var tableau2:Array = new Array("Agence d'Angers", "Agence de Bordeaux", "Agence de Cahors", "Agence de Lens", "Agence de Paris", "Agence de Nantes", "Agence de Rennes"); //le tableau est créé et alimenté.

Ajout d'éléments à la fin du tableau

On peut ajouter des éléments à la fin d'un tableau grâce à la méthode push() de la classe Array

Actionscript:
  1. tableau1.push(2008); //La valeur numérique 2008 est ajouté à la fin du tableau

Accès aux éléments d'un tableau

Nous allons utiliser une boucle pour parcourir le tableau en ordre croissant
Nous allons indiquer à notre boucle la valeur initiale, l'index 0, ainsi que sa limite de valeurs : la longueur du tableau.

Actionscript:
  1. trace("***********************Tableau 1 après un ajout à la fin du tableau");
  2. for(var i:uint=0; i <tableau1.length ; i++)
  3. {
  4. trace("Elément " + i + " du tableau 1: " + tableau1[i]); //l'opérateur d'accès au tableau est []
  5. }

Il est cependant préférable d'utiliser une variable pour stocker la longueur du tableau afin de ne pas recalculer la longueur à chaque itération. (Merci NikO)

Actionscript:
  1. trace("***********************Tableau 1 après un ajout à la fin du tableau");
  2. var longueurTableau:uint = tableau1.length;
  3. for(var b:uint=0; b <longueurTableau ; b++)
  4. {
  5. trace("Elément " + b+ " du tableau 1: " + tableau1[b]); //l'opérateur d'accès au tableau est []
  6. }

Ajout de plusieurs éléments à la fin du tableau
Actionscript:
  1. tableau1.push(2009, 2014, 2015); //Il est tout à fait possible d'ajouter plusieurs éléments grâce à la méthode push.
  2. trace("***********************Tableau 1 après plusieurs ajouts en fin de tableau");
  3. for(var g:uint=0; g <tableau1.length ; g++)
  4. {
  5. trace("Elément " + g + " du tableau 1: " + tableau1[g]); //l'opérateur d'accès au tableau est []
  6. }

Ajout d'éléments au début du tableau

On peut ajouter des éléments au début d'un tableau grâce à la méthode unshift() de la classe Array

Actionscript:
  1. tableau1.unshift(2007);//La valeur numérique 2007 est ajouté au début du tableau
  2. trace("***********************Tableau 1 après un ajout au début du tableau");
  3. for(var h:uint=0; h <tableau1.length ; h++)
  4. {
  5. trace("Elément " + h + " du tableau 1: " + tableau1[h]); //l'opérateur d'accès au tableau est []
  6. }

On peut aussi ajouter des éléments à un endroit précis du tableau

On peut ajouter des éléments à un index désiré en utilisant la méthode splice() de la classe Array

Actionscript:
  1. tableau1.splice(3, 0, 2010, 2011, 2012, 2013);//ajoute 4 valeurs(2010, 2011, 2012, 2013) à partir de l'index 3. La méthode splice() est aussi utilisée pour supprimer des données, c'est pourquoi on précise 0 en 2ème paramètre pour indiquer que l'on ne supprime rien
  2. trace("***********************Tableau 1 après un ajout au mileu du tableau");
  3. for(var e:uint=0; e <tableau1.length ; e++)
  4. {
  5. trace("Elément " + e + " du tableau 1: " + tableau1[e]); //l'opérateur d'accès au tableau est []
  6. }

Supprimer des éléments du tableau

On peut supprimer des éléments au début ou la fin d'un tableau en utilisant les méthodes shift() ou pop() de la classe Array

Actionscript:
  1. trace("***********************Tableau 2 complet");
  2. for(var j:uint=0; j <tableau2.length ; j++)
  3. {
  4. trace("Elément " + j + " du tableau 2: " + tableau2[j]); //l'opérateur d'accès au tableau est []
  5. }
  6. tableau2.shift();//Supprime le premier élément du tableau soit la valeur "Agence d'Angers" pour le tableau 2
  7. tableau2.pop();//Supprime le dernier élément du tableau soit la valeur "Agence de Rennes" pour le tableau 2
  8. trace("***********************Tableau 2 avec Angers et Rennes qui ont été supprimés");
  9. for(var k:uint=0; k <tableau2.length ; k++)
  10. {
  11. trace("Elément " + k + " du tableau 2: " + tableau2[k]);
  12. }
  13. //les valeurs Angers et Rennes ont été supprimées

On peut aussi supprimer des éléments à un endroit précis du tableau

On utilise la méthode splice() en précisant 2 paramètres, l'index de début de suppression et le nombre d'éléments à supprimer

Actionscript:
  1. tableau2.splice(2,1);//Supprime la valeur qui est à l'index 2 soit "Agence de Lens"
  2. trace("***********************Tableau 2 avec l'Agence de Lens supprimée");
  3. for(var l:uint=0; l <tableau2.length ; l++)
  4. {
  5. trace("Elément " + l + " du tableau 2: " + tableau2[l]);
  6. }
  7. tableau2.splice(1,2);//Supprime 2 valeurs à partir de l'index 1 soit "Agence de Cahors et Agence de Paris"
  8. trace("***********************Tableau 2 avec Cahors et Paris qui ont été supprimés");
  9. for(var m:uint=0; m <tableau2.length ; m++)
  10. {
  11. trace("Elément " + m + " du tableau 2: " + tableau2[m]);
  12. }

;)