Processus semi-parallèles

Dès que vous utilisez la commande Refresh() dans une boucle, vous démarrez un processus semi-parallèle. ou ce que nous appelons une boucle parallèle.

Cela veut dire que pendant que la boucle est toujours en cours, vous pouvez interagir avec les objets, lancer des scriptes ou ou d'autres actions.

Voyons le premier exemple : une boucle normale.

for n=0 to 10000

a=n+1

next n

La boucle normale mettra MMB en "pause" (il sera inactif) et ce, tant que la boucle ne sera pas finie. Vous ne pourrez cliquer sur aucun bouton pendant ce temps.

Maintenant la boucle parallèle.

for n=0 to 10000

a=n+1

Refresh()

next n

La commande Refresh() implémentera des interactions parallèles. Cela veut dire que pendant que la boucle continuera vous pourrez cliquer sur vos boutons, ou lancer d'autres scriptes.

Vous devez vous rappeler qu'un autre processus semi-parallèle stoppera le premier jusqu'à ce que le second soit fini.

Voir le graphique ci dessous.

Représentation de la boucle :

Mmb00014.gif

Vous pouvez le boucle parallèles uniquement si vous savez quel en sera le résultat.

Exemple d'utilisation d'une boucle infinie

Avec la boucle parallèle, nous pouvons aussi utiliser une boucle infinie (vous devez vous souvenir de quitter).

Le scripte suivant l'objet cercle suivra votre souris, jusqu'à ce qu'un autre objet fasse passer la variable stop à 1.

stop = 0

for n=0 to infinity

MoveObject("Cercle","MOUSEX( ),MOUSEY( )")

if (stop=1) then

Return()

end

Refresh()

next n