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 de 1 ;
  • Chaque 0 et 1 occupe un emplacement appelé bit ;
  • Un bit peut donc être égale à 0 ou 1.
  • Un emplacement de bit est caractérisé par son index.
  • 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 puissance index, soit 2 index.

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 de 1 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.