ActionScript 3 – Programmation séquentielle et orientée objet
206
Comme vous pouvez le constater, la fonction de rappel est la même pour toutes les zones
de saisie. La ligne d’instruction ci-dessous permet de déterminer l’instance qui est en
cours de changement, ce qui nous permet d’obtenir un numéro d’index pour modifier une
entrée précise du tableau etatCase.
etatCases[evt.currentTarget.name.substr(9,1)]=evt.currentTarget.text;
L’objet evt, accompagné de sa propriété currentTarget, renvoie l’instance en cours de
changement. La propriété name précise son nom et la méthode substr() permet de récupérer le caractère portant l’index 9 (le dixième caractère du mot). Il s’agit du numéro placé
à la fin de chaque nom d’instance, comme 2 pour le dixième caractère de l’instance
nomJoueur2. Il ne nous reste plus qu’à l’utiliser comme index du tableau etatCases.
Exemple 2
Fichier de référence : Chapitre8/Tableau5.fla
Ce deuxième exemple est plus simple, car nous nous contentons de reprendre le même
principe que l’exemple 1 en l’adaptant à un nouveau besoin. Un clic sur une occurrence
permet de basculer la valeur booléenne d’une entrée du tableau etatCases. Nous l’utilisons
alors pour régler l’opacité de l’instance cliquée.
var etatCases:Array = new Array(true,true,true,true);
case0.addEventListener(MouseEvent.MOUSE_DOWN,changerValeurEntree);
case1.addEventListener(MouseEvent.MOUSE_DOWN,changerValeurEntree);
case2.addEventListener(MouseEvent.MOUSE_DOWN,changerValeurEntree);
case3.addEventListener(MouseEvent.MOUSE_DOWN,changerValeurEntree);
function changerValeurEntree(evt:MouseEvent) {
var numeroCase:Number = Number(evt.currentTarget.name.substr(4,1));
etatCases[numeroCase] = ! etatCases[numeroCase];
evt.currentTarget.alpha = Number(etatCases[numeroCase] )+0.5;
}
Lorsque les valeurs booléennes true et false sont converties en nombres par l’intermédiaire de la classe Number(), nous obtenons respectivement les chiffres 1 et 0.
Ajouter une entrée
Pour ajouter une entrée à un tableau, vous disposez de plusieurs techniques. Tout dépend
de l’endroit dans le tableau où l’ajout a lieu : à la fin, au début, au milieu ou à une position
encore inexistante, en spécifiant un index supérieur au nombre d’éléments du tableau.
Remarque
Nous utilisons la méthode toString() pour convertir le tableau en chaîne de caractères.
206
Comme vous pouvez le constater, la fonction de rappel est la même pour toutes les zones
de saisie. La ligne d’instruction ci-dessous permet de déterminer l’instance qui est en
cours de changement, ce qui nous permet d’obtenir un numéro d’index pour modifier une
entrée précise du tableau etatCase.
etatCases[evt.currentTarget.name.substr(9,1)]=evt.currentTarget.text;
L’objet evt, accompagné de sa propriété currentTarget, renvoie l’instance en cours de
changement. La propriété name précise son nom et la méthode substr() permet de récupérer le caractère portant l’index 9 (le dixième caractère du mot). Il s’agit du numéro placé
à la fin de chaque nom d’instance, comme 2 pour le dixième caractère de l’instance
nomJoueur2. Il ne nous reste plus qu’à l’utiliser comme index du tableau etatCases.
Exemple 2
Fichier de référence : Chapitre8/Tableau5.fla
Ce deuxième exemple est plus simple, car nous nous contentons de reprendre le même
principe que l’exemple 1 en l’adaptant à un nouveau besoin. Un clic sur une occurrence
permet de basculer la valeur booléenne d’une entrée du tableau etatCases. Nous l’utilisons
alors pour régler l’opacité de l’instance cliquée.
var etatCases:Array = new Array(true,true,true,true);
case0.addEventListener(MouseEvent.MOUSE_DOWN,changerValeurEntree);
case1.addEventListener(MouseEvent.MOUSE_DOWN,changerValeurEntree);
case2.addEventListener(MouseEvent.MOUSE_DOWN,changerValeurEntree);
case3.addEventListener(MouseEvent.MOUSE_DOWN,changerValeurEntree);
function changerValeurEntree(evt:MouseEvent) {
var numeroCase:Number = Number(evt.currentTarget.name.substr(4,1));
etatCases[numeroCase] = ! etatCases[numeroCase];
evt.currentTarget.alpha = Number(etatCases[numeroCase] )+0.5;
}
Lorsque les valeurs booléennes true et false sont converties en nombres par l’intermédiaire de la classe Number(), nous obtenons respectivement les chiffres 1 et 0.
Ajouter une entrée
Pour ajouter une entrée à un tableau, vous disposez de plusieurs techniques. Tout dépend
de l’endroit dans le tableau où l’ajout a lieu : à la fin, au début, au milieu ou à une position
encore inexistante, en spécifiant un index supérieur au nombre d’éléments du tableau.
Remarque
Nous utilisons la méthode toString() pour convertir le tableau en chaîne de caractères.
