Eventi

Ogni modifica all'area di lavoro attiva un evento. Questi eventi descrivono in modo esauriente lo stato precedente e successivo di ogni modifica.

Ascolto di eventi

Nelle aree di lavoro sono disponibili metodi addChangeListener e removeChangeListener che possono essere utilizzati per ascoltare il flusso di eventi. Un esempio è la generazione in tempo reale del codice. Un altro esempio è la demo del limite massimo di blocchi. Come spesso accade, nessuno di questi due esempi riguarda l'evento di attivazione. guardano semplicemente lo stato attuale dell'area di lavoro.

Un listener di eventi più sofisticato guarderebbe l'evento di attivazione. L'esempio seguente rileva quando l'utente crea il primo commento, invia un avviso e interrompe l'ascolto, in modo che non vengano attivati altri avvisi.

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);

Per ascoltare gli eventi che si verificano all'interno di un riquadro a comparsa, è possibile aggiungere un listener all'area di lavoro del riquadro a comparsa.

var flyoutWorkspace = yourWorkspace.getFlyout().getWorkspace();
flyoutWorkspace.addChangeListener(onFirstComment);

I blocchi hanno un altro metodo per ascoltare lo stream di eventi. Un blocco può definire una funzione onchange o utilizzare setOnChange per impostare una funzione che verrà chiamata ogni volta che si verifica una modifica nell'area di lavoro del blocco.

Tipi di eventi

Per informazioni sui singoli eventi, consulta la documentazione di riferimento.

Demo

Per un esempio delle cose interessanti che puoi fare con gli eventi, puoi dare un'occhiata alla demo del mirroring. Questa demo contiene due aree di lavoro Blockly che vengono mantenute sincronizzate tramite gli eventi.