Chaque modification apportée à l'espace de travail déclenche un événement. Ces événements décrivent complètement l'état avant et après chaque modification.
Écouter des événements
Les espaces de travail disposent de méthodes addChangeListener
et removeChangeListener
qui peuvent être utilisées pour écouter le flux d'événements. Par exemple, la génération de code en temps réel.
Vous pouvez également consulter la démo sur la limite maximale de blocs.
Comme c'est souvent le cas, aucun de ces deux exemples ne se soucie de l'événement déclencheur. Il se contente d'observer l'état actuel de l'espace de travail.
Un écouteur d'événements plus sophistiqué examine l'événement déclencheur. L'exemple suivant détecte quand l'utilisateur crée son premier commentaire, émet une alerte, puis arrête l'écoute afin qu'aucune autre alerte ne soit déclenchée.
function onFirstComment(event) {
if (event.type == Blockly.Events.BLOCK_CHANGE &&
event.element == 'comment' &&
!event.oldValue && event.newValue) {
alert('Congratulations on creating your first comment!')
workspace.removeChangeListener(onFirstComment);
}
}
workspace.addChangeListener(onFirstComment);
Pour écouter tous les événements qui se produisent dans un panneau, vous pouvez ajouter un écouteur à l'espace de travail du panneau.
var flyoutWorkspace = yourWorkspace.getFlyout().getWorkspace();
flyoutWorkspace.addChangeListener(onFirstComment);
Les blocs disposent d'une autre méthode pour écouter le flux d'événements. Un bloc peut définir une fonction onchange
ou utiliser setOnChange pour définir une fonction qui sera appelée chaque fois qu'un changement se produira dans l'espace de travail du bloc.
Types d'événement
Pour en savoir plus sur les événements individuels, consultez la documentation de référence.
Démo
Pour voir un exemple de ce que vous pouvez faire avec les événements, consultez la démo du miroir. Cette démonstration comporte deux espaces de travail Blockly qui sont synchronisés à l'aide d'événements.