Eventos

Cada cambio en el lugar de trabajo activa un evento. Estos eventos describen en detalle el estado anterior y posterior de cada cambio.

Escucha de eventos

Los lugares de trabajo tienen métodos addChangeListener y removeChangeListener que se pueden usar para escuchar la transmisión de eventos. Un ejemplo es la generación de código en tiempo real. Otro ejemplo es la demostración del límite de bloqueo máximo. Como suele ser el caso, a ninguno de estos dos ejemplos le importa cuál fue el evento desencadenante. Solo miran el estado actual del lugar de trabajo.

Un objeto de escucha de eventos más sofisticado examinaría el evento de activación. En el siguiente ejemplo, se detecta cuando el usuario crea su primer comentario, emite una alerta y, luego, deja de escuchar para que no se activen más alertas.

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

Para escuchar cualquier evento que ocurra dentro de un control flotante, se puede agregar un objeto de escucha al espacio de trabajo del menú flotante.

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

Los bloques tienen otro método para escuchar la transmisión de eventos. Un bloque puede definir una función onchange o usar setOnChange para configurar una función a la que se llamará cada vez que se produzca un cambio en el lugar de trabajo del bloque.

Tipos de eventos

Consulta la documentación de referencia para obtener información sobre eventos individuales.

Demostración

Para ver un ejemplo de lo que puedes hacer con los eventos, consulta la demostración de espejo. Esta demostración tiene dos lugares de trabajo de Blockly que se mantienen sincronizados mediante eventos.