En fait la construction de la courbe sinus dans l'exemple précédent ne s'arrête pas, il n'y a pas de test pour savoir si le calcul est encore affichable sur la scène, on ne peut enchaîner une autre action. Un test sur l' abscisse de la boule , x_ boule <450 ? ( la scène mesurant 500, on verra mieux si le test est effectif) arrêtera cette partie de l' animation.
Utilisation d' un IF
if( condition) { instruction(s) ; } Si la condition est remplie alors on effectue les instructions.
![]() |
If commence par tester l' abscisse de la boule, si le test est vrai alors le bloc de conditions entre accolades est exécuté. On passe ensuite à l' instruction suivante donc, ici à l' image 3 du scénario. |
![]() |
Le code de l' image 3 renvoi à l' image 2 pour refaire la boucle. Pour sortir de cette boucle l' une des solutions serait un Else. Code source sinif.fla |
Boucle For
for( valeur initiale de la variable; test de fin de boucle; incrémentation de la variable) { instruction(s); }
Les instructions sont exécutées jusqu'au moment où le test de fin de boucle sera faux ; on passera alors aux instructions suivantes ou à l' image suivante du scénario.
![]() |
Le code de l'image 1 du calque anim est inchangé par contre le code de l'image 2 est encapsulé dans la boucle for entre deux acolades. On commence avec l'abscisse de la boule à 0 puis, tant que cette abscisse est inférieur à 450 on lui ajoute 1. x_boule ++ ou x_boule +=1 correspond à x_boule = x_boule + 1 x_boule -- ou x_boule -=1 correspond à x_boule = x_boule - 1 x_boule +=2 correspond à x_boule = x_boule + 2 x_boule *=2 correspond à x_boule = x_boule *2 |
| Le code de l' image 3 du calque anim ne nécessite plus une boucle sur l' image 2. |
L' affichage n' est fait squares tous les calculs. On ne voit donc plus la courbe progresser. Fichier sinfor.fla
Boucle Do ... While
do { instruction(s) } while ( condition ) exécute les instructions tant que la condition est vraie
![]() |
Exécute la boucle tant que l' abscisse de la boule est inférieure à 450. L' affichage n' est fait qu' après tous les calculs. On ne voit donc plus la courbe progresser. Fichier sindo.fla |
Boucle While
while( condition ) { instruction(s) ; } teste la condition puis exécute les instructions
![]() |
Le code de l' image 2 du calque anim teste cette fois la condition avant d' exécuter les instructions. J' ai eu quelques problèmes avec un incrémentation petite comme 0.001. L' affichage se fait de façon globale, après tous les calculs. fichier sinwhile.fla |
Un peu de sérieux
Les structures de controle :
If est une structure de contrôle conditionnelle comme Switch sans boucle intégrée ; If sert à tester une condition et peut être associé à Else.
For, While ou Do déclenchent une boucle, une série d' instructions tant qu' une condition est vraie.
For permet tout mais est surtout adapté à des boucles de variables incrémentées pour répéter une action.
![]() |
Testez cette ligne dans un nouveau fichier Flash. Trace sert beaucoup dans la mise au point des codes. Le + concatène la valeur de la variable avec une chaine de caractères. i++ indique que i est incrémenté de 1 à chaque tour de la boucle, testez avec i *= 3 |
While ou Do ont une grande lisibilité, le test se fait avant ou après la première série d'instructions.
Continue permet de sauter des étapes d'une boucle tandis que Break permet une sortie de boucle.
Si toutes les étapes intermédiaires du tracé d' une courbe sont nécessaires If s' impose. Pour une rapidité d'affichage, il faut tester ! Résumé à imprimer
Jean.delerue@@inln.cnrs.fr corrigez l'adresse électronique, l'erreur est volontaire, j'aimerais éviter les spam ...