Zdarzenia

Każda zmiana w obszarze roboczym wywołuje zdarzenie. Zdarzenia te w pełni opisują stan przed i po każdej zmianie.

Odsłuchiwanie zdarzeń

Obszary robocze mają metody addChangeListener i removeChangeListener, których można używać do nasłuchiwania strumienia zdarzeń. Jednym z przykładów jest generowanie kodu w czasie rzeczywistym. Innym przykładem jest prezentacja maksymalnego limitu blokad. Jak często zdarza się, że w żadnym z tych 2 przykładów nie ma znaczenia, jakie było zdarzenie wyzwalające. Mogą po prostu sprawdzić bieżący stan obszaru roboczego.

Bardziej zaawansowany detektor zdarzeń analizuje zdarzenie aktywujące. W poniższym przykładzie widać, że użytkownik tworzy swój pierwszy komentarz, wysyła alert, a następnie przestaje nasłuchiwać, aby nie były wywoływane kolejne alerty.

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

Aby nasłuchiwać zdarzeń występujących wewnątrz wysuwanego panelu, można dodać do jego obszaru roboczego.

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

Blokady pozwalają na odsłuchiwanie strumienia zdarzeń w inny sposób. Blok może zdefiniować funkcję onchange lub użyć setOnChange, aby ustawić funkcję, która będzie wywoływana po każdym wystąpieniu zmiany w obszarze roboczym bloku.

Typy zdarzeń

Informacje o poszczególnych zdarzeniach znajdziesz w dokumentacji referencyjnej.

Demonstracyjny

Przykładowe przydatne funkcje wydarzeń znajdziesz w prezentacji funkcji lustrzanej. Ta wersja demonstracyjna zawiera 2 obszary robocze Blockly, które są synchronizowane za pomocą zdarzeń.