Lorsque vous avez réalisé une animation et tentez de la lire, vous découvrez qu’elle ne se joue malheureusement pas en boucle. C’est normal, aucune instruction à la fin de l’animation ne spécifie une relance de l’animation car ce n’est pas une obligation. Pour relancer la lecture d’une animation, c’est à vous d’ajouter un écouteur à la fin du scénario comme vous pouvez le voir sur la copie d’écran ci-dessous (en bas à droite), à l’aide la méthode play() en spécifiant le temps à atteindre (0 pour 0 secondes).
sym.play(0);
Comme vous pouvez le découvrir sur la copie d’écran ci-dessus, il existe plusieurs méthodes pour contrôler la tête de lecture d’une animation.
play() : lorsque cette méthode est utilisée sans paramètres, l’animation se joue à partir de la position de la tête de lecture dans le scénario. En revanche, si vous spécifiez une valeur exprimée en millisecondes dans les parenthèses, ex. sym.play(2500), vous demandez une lecture de l’animation à partir de la 2500e millisecondes, soit 2,5 secondes. Dans le cas où vous auriez placé des étiquettes le long de votre scénario, vous pouvez spécifier une valeur alphanumérique dans les parenthèses de la méthode play(). ex. : sym.play(« departVoiture »). La procédure d’ajout d’étiquette au scénario se trouve à la fin de cette page.
playReverse() : cette méthode présente les même caractéristiques que la méthode play(), elle permet de jouer ou déplacer la tête de lecture, mais dans le sens inverse.
stop() : cette méthode permet bien évidement d’arrêter la lecture de l’animation, mais elle permet également de déplacer la tête de lecture à un instant précis (comme le fait la méthode play()), en spécifiant une valeur exprimée en millisecondes ou sous forme de texte compris entre guillemets (sous-entendant que vous avez préalablement placé une étiquette dans le scénario). Vous obtenez ainsi une méthode qui permet de naviguer dans le scénario tout en s’arrêtant sur des images fixes.
Lecture en cours…
En complément de ces 3 méthodes, vous pouvez en utiliser deux autres, isPlaying() et isPlayDirectionReverse(), qui permettent respectivement de savoir si une animation est en cours de lecture et dans quel sens. Elles ne sont pas difficiles à comprendre dans le principe, en revanche, leur utilisation n’a de sens qu’à travers une structure conditionnelle. Comme le montre la copie d’écran ci-dessus, lorsque l’animation est en cours de lecture (via un script de scénario avec l’évènement update, en bas à gauche de la copie d’écran), un test vérifie le sens de lecture afin d’afficher les textes « Sens horaire » ou « Sens antihoraire ». Un deuxième test permet d’afficher le texte « Lecture en cours » dans le cas où l’animation est effectivement en lecture. Vous noterez que ce dernier texte est remplacé par « En pause » grâce au script de scénario (évènement stop).
Durée d’une animation et position de la tête de lecture
Comme vous pouvez le voir sur l’animation ci-dessus, un nombre s’incrémente pour afficher des valeurs comprises entre 0 et 4000. Il s’agit de la position de la tête de lecture au cours de la lecture de l’animation. Pour obtenir cette valeur, il suffit de faire appel à la méthode getPosition(). Pour connaitre la durée totale d’une animation, utilisez getDuration().
Placer une étiquette dans le scénario
Pour ce faire, suivez la procédure ci-dessous :
- Déplacez la tête de lecture à l’instant souhaité.
- Cliquez sur le bouton d’insertion d’un étiquette.
- Nommez l’étiquette.