Les structures conditionnelles
CHAPITRE 9
215
Si vous connaissiez les contextes d’exécution des quatre lignes ci-dessus, vous pourriez
aisément déterminer si chaque test est vrai ou faux.
Voici un test, portant sur une propriété, qui pourrait être beaucoup plus concis, essayez de
comprendre pourquoi…
if(boutonAlerte.visible==true) activationSaisie=true;
N’oubliez pas que la ligne d’instruction qui suit les parenthèses sera exécutée lorsque le
test renverra la valeur true. Comme la propriété boutonAlerte.visible est de type
booléen, la comparaison avec la valeur true est inutile. Il vous suffit de saisir :
if(boutonAlerte.visible) activationSaisie=true;
Une occurrence ne peut en effet qu’être visible (visible==true) ou pas (visible==false).
Voici un premier exemple qui permet d’appliquer un test dans un contexte précis. Il s’agit
d’une occurrence représentant une balle qui se déplace de 5 pixels horizontalement et
verticalement. Lorsqu’elle dépasse certaines limites sur la scène (simulant le choc contre
un mur), nous changeons alors la valeur de la variable qui définit le pas initial du déplacement vertical ou horizontal.
Fichier de référence : Chapitre9/if1.fla
var vitesseHorizontale = 5;
var vitesseVerticale = 5;
balle.addEventListener(Event.ENTER_FRAME,deplacerBalle);
function deplacerBalle (evt:Event) {
balle.x+=vitesseHorizontale;
balle.y+=vitesseVerticale;
if(balle.x>490) vitesseHorizontale = -3;
if(balle.x<10) vitesseHorizontale = 3;
if(balle.y>267) vitesseVerticale = -3;
if(balle.y<10) vitesseVerticale = 3;
}
Remarque
Le test d’une égalité s’écrit toujours avec deux signes égale : ==. Si vous n’en saisissez qu’un, il ne s’agit plus
d’un test, mais d’une affectation. Le résultat du test sera alors très différent de ce à quoi vous vous attendiez.
Remarque
Pour tester la position d’une occurrence sur la scène et notamment des dépassements de zones, ne
testez pas avec une égalité mais plutôt avec les signes inférieurs ou supérieurs. Si l’on souhaite par exemple faire l’action suivante : si la balle arrive à droite de la scène qui fait 490 pixels de largeur, on la replace
à gauche ; un programmeur inexpérimenté aura tendance à écrire if (balle.x==490) balle.x=0,
alors qu’il faut impérativement écrire if(balle.x>490) balle.x=0. En effet, un déplacement d’occurrence ne se faisant pas toujours pixel par pixel, il y a un grand risque que votre occurrence ne passe pas
précisément par le 490 e pixel du bord gauche de la scène si le pas de déplacement est de plus d’un pixel.
Précédent

- 243/426

Suivant