LocalTrack
La fonctionnalité LocalTrack présente une approche innovante dans le développement dans Storyline, introduisant ainsi :
- Une logique nouvelle dans la programmation des déclencheurs et
- Une utilisation inédite de variables.
Présentation
LocalTrack interagit exclusivement avec des variables de type Nombre
.
La fonctionnalité est basée sur les « expressions opératoires », ce qui signifie que les opérations à exécuter sont spécifiées dans une chaîne de caractères et ne sont plus programmées directement dans les déclencheurs.
LocalTrack manipule les valeurs des nombres en tant qu'expressions binaires : les expressions opératoires peuvent ainsi être basées suivant 2 logiques : les index des bits et la valeur des bits.
Notions sur le binaire
Cette article n'a pas pour vocation de donner un cours sur le binaire mais pour ceux qui ne sont pas à l'aise avec le vocabulaire, voici un petit récapitulatif des termes les plus utilisés pour comprendre l'aide de Nuggets.
- Une expression binaire est une suite de
0
et de1
; - Chaque
0
et1
occupe un emplacement appelébit
; - Un
bit
peut donc être égale à0
ou1
. - Un emplacement de
bit
est caractérisé par sonindex
. - Les index sont numérotés à partir de
0
et commence par la droite. - La valeur décimale d'un
bit
est calculée en portant 2 à la puissanceindex
, soit 2index
.
L'intérêt
L'intérêt d'une expression binaire va résider dans son utilisation en tant que tableau stockant des données :
- ces données doivent répondre
Vrai/Faux
,Oui/Non
, etc. à un problème, une question ; - elles appartiennent toutes à une même catégorie au sien d'une seule expression binaire.
Par exemple, on peut stocker dans une expression binaire l'ensemble des diapositives d'une scène dans Storyline :
- son index dans la scène correspondra à l'index dans l'expression binaire ;
- une fois visité, le bit de l'expression permutera à
1
.
Attention
En système informatique, l'utilisation d'un bit signé pour définir si un nombre flottant est positif ou négatif, impose une limite de 32 bits. Si vous utilisez LocalTrack dans vos projets, veillez à toujours travailler avec des index compris entre 0 et 31.
Ces notions en tête, passons à l'initialisation de la fonctionnalité dans votre fichier .STORY
.
Initialisation et paramètres
Variables
LocalTrack fonctionne toujours avec des variables binomiales :
- une variable de type
Texte
pour énoncer les opérations à exécuter et - une variable de type
Nombre
pour retourner le résultat des opérations s'il y a un résultat.
Pour l'article, appelons-les Tracking
et Result
.
Déclencheur
Créons maintenant le déclencheur qui exécutera le traitement des expressions opératoires passées via la variable Tracking
. Ce déclencheur sera créé sur le Masque de diapositive principal.
Déclencheur Storyline
Quand 'Tracking' change
- Exécuter 'JavaScript'
Si 'Tracking' ≠ valeur '(vide)'
Et dans l'Editeur JavaScript :
JavaScript
LocalTrack.parse('Tracking','Result');
Informations supplémentaires
LocalTrack.parse
accepte un troisième argument de type Texte
.
Cet argument définit un suffixe à attribuer à des variables supplémentaires à créer :
- les variables doivent être de type
Texte
; - elles doivent être nommées en combinant le suffixe et les noms de variables utilisées, soit en tant que variables binomiales, soit dans les expressions opératoires ;
- elles retournent systématiquement les valeurs binaires sous forme de suite de
0
et de1
des variables associées ; - elles sont destinées à être utilisées avec le processeur
%
dans un champs texte.
Ex :%Tracking_binary%
,%Result_binary%
,%maVariable_binary%
, etc.
La fonctionnalité est fin prête pour être utilisée dans un projet.
Utilisation
Examinons tout de suite un exemple pour comprendre comment utiliser LocalTrack.
Soit une variable maVar
égale à 0
au point initial.
Déclencheur Storyline
Quand l’utilisateur clique sur 'mon Bouton 1'
- Affecter à 'Tracking' la valeur 'maVar+1'
La variable texte Tracking
reçoit une expression opératoire, le déclencheur créé dans la phase initialisation réagit.
Essayons de décortiquer cette opération en même temps que LocalTrack la traite. Dans cet exemple, on « ajoute 1
». Le résultat de cette opération stocke 2
dans la variable maVar
.
Pourquoi ?
Reprenons l'explication sur la manipulation des nombres donnée plus haut dans la partie « Principe » : les expressions peuvent être basées suivant les index des bits ou suivant la valeur des bits.
Ici, le +
indique que l'opération doit se faire suivant les index. L'interprétation de l'opération se lit donc : additionne à maVar
(qui est égale à 0
) un bit égale à 1 en index 1, soit 21. Le résultat est donc : 0+2=2
.
Effectuons une nouvelle opération.
Déclencheur Storyline
Quand l’utilisateur clique sur 'mon Bouton 4'
- Affecter à 'Tracking' la valeur 'maVar+4'
L'interprétation de l'opération se lit : additionne à maVar
(qui est égale à 2
maintenant) un bit égale à 1 en index 4, soit 24, soit 2+16=18
. La valeur binaire de maVar
est bien 10010
.
L'intérêt
Exécuter une opération via les expressions opératoires permet de toujours obtenir le même résultat. Peu importe le nombre de fois que maVar+1
est exécuté, le résultat retournera toujours 2
.
Additionner 1 en base décimale depuis les déclencheurs de Storyline incrémente la variable de 1 à chaque fois que le déclencheur est exécuté.
L'addition n'est bien sûr pas la seule opération exécutable. Passons en revue les opérations interprétées par LocalTrack.
Opérations supportées
LocalTrack supporte plusieurs expressions opératoires et chacune d'elle fonctionne d'une manière spécifique.
Voici la liste exhaustive (N
étant égale à 2n
) :
Opération | Index | Binaire | Exemples |
---|---|---|---|
Addition | +n |
|N |
Bascule le bit à l'index n à 1 si celui-ci n'est pas déjà égale à 1 .Ex : maVar+4 équivaut à maVar|16 . |
Soustraction | -n |
~N |
Bascule le bit à l'index n à 0 si celui-ci n'est pas déjà égale à 0 .Ex : maVar-3 équivaut à maVar~8 . |
Condition | ?n |
&N |
Exécute une condition sur le bit à l'index n et retourne sa valeur dans la variable Result .Ex : maVar?5 équivaut à maVar&32 et peut être égale à 0 ou à 2n. |
! |
Retourne le nombre de bits équivalant à 0 ou à 1 . Ex : Si maVar équivaut à 26, sa valeur binaire vaut 11010 .maVar!1 retourne 3 et myVar!0 retourne 2. |
Voyons maintenant comment les utiliser !
Manipulation des opérations
Règles sur les expressions opératoires
Une expression opératoire s'effectue en combinant le nom d'une variable, un opérande et une valeur dans une chaîne de caractères. Cette chaîne sera transmise à la variable de traitement Tracking
.
Ex : maVariable+5
, maVariable|32
, maVariable-5
, maVariable~32
, etc.
Le traitement de chaque expression opératoire effectue chaque opération sur la valeur de la variable et retourne le résultat dans la variable.
Opérations multiples
Plusieurs opérations peuvent être inscrites à la chaîne dans une même expression opératoire. Les opérations seront exécutées de gauche à droite.
Ex : maVariable+2+5+7
Cette opération équivaut à faire la somme de tous les bits : 22+25+27 = 4 + 32 + 128 = 164
La somme des bits est ajoutée à la valeur de maVariable
et est retourné dans cette variable.
À noter que maVariable|164
est équivalent.
Astuces
Il est possible de mélanger les opérandes « index » et « binaires » entre eux.
Exemple : maVariable~164+2
On soustrait ici plusieurs bits pour réinitialiser la variable, puis on ajoute le bit à l'index 2.
Opérations conditionnelles
Les opérations conditionnelles s'utilisent pour connaître la valeur d'un ou plusieurs bits d'une expression binaire.
Elles s'effectuent avec les opérandes conditionnels ?
pour retourner le bit à l'index passé à droite de l'opérande, et &
pour retourner les bits identiques à l'expression binaire passée à droite de l'opérande.
Ex : maVariable?5
retourne le bit en index 5 de la variable maVariable
Le résultat de cette opération vaut soit 0
si le bit contenait 0
, soit 32
(25) si le bit contenait 1
.
Les opérations conditionnelles peuvent s'effectuer également en utilisant la somme de plusieurs bits.
Ex : maVariable&164
retourne la somme des bits n°2, n°5 et n°7 de la variable maVariable
.
Point d'attention
Si vous mélangez les expressions opératoires avec les expressions conditionnels, placez les conditions en dernier. De cette façon, elles prendront en compte les expressions opératoires dans l'expression.
Exemple : maVariable+2&164
Opérations avec variable
Les expressions opératoires peuvent être réalisées en utilisant des noms de variables à droite des opérandes.
Ex : maVariable+indexBoutonX
, maVariable&progressChapX
, etc.
De cette façon, la déclaration d'une variable à un endroit d'un projet et son utilisation dans les expressions opératoires permet un développement plus souple et plus facile.
De la même manière, il est possible d'enchaîner plusieurs opérations avec une ou plusieurs variables dans une expression opératoire.
Déclencheurs Storyline
Quand la chronologie de 'cette diapositive' commence
- Affecter à 'Correction' la valeur '164'
Quand l’utilisateur clique sur 'Bouton 1'
- Affecter à 'Tracking ' la valeur 'maVariable+1&Correction'
- Etc.
Quand l’utilisateur clique sur 'Bouton 2'
- Affecter à 'Tracking ' la valeur 'maVariable+2&Correction'
- Etc.