Każda zmiana w obszarze roboczym powoduje wywołanie zdarzenia. Te zdarzenia w pełni opisują przed każdą zmianą i po niej.
Nasłuchiwanie zdarzeń
Obszary robocze korzystają z metod addChangeListener
i removeChangeListener
, które mogą
do nasłuchiwania strumienia zdarzeń. Jednym z nich jest generowanie kodu w czasie rzeczywistym.
Innym przykładem jest maksymalny limit blokady.
Jak to często bywa, w żadnym z tych przykładów nie ma znaczenia, co było zdarzeniem wywołującym. Sprawdzają tylko bieżący stan obszaru roboczego.
Bardziej zaawansowany detektor zdarzeń sprawdzałby zdarzenie uruchamiające. Poniższy przykład pokazuje, kiedy użytkownik utworzył pierwszy komentarz, wywoła alert, a następnie przestanie 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 w wyskakującym okienku, detektor może zostaną dodane do obszaru roboczego rozwijania się.
var flyoutWorkspace = yourWorkspace.getFlyout().getWorkspace();
flyoutWorkspace.addChangeListener(onFirstComment);
Blokady mają inny sposób nasłuchiwania strumienia zdarzeń. Blok może zdefiniować funkcję onchange
lub użyć funkcji setOnChange, aby ustawić funkcję, która będzie wywoływana za każdym razem, gdy nastąpi zmiana w obszarze roboczym bloku.
Typy zdarzeń
Informacje o poszczególnych zdarzeniach znajdziesz w dokumentacji.
Prezentacja
Na przykład fajnych rzeczy, które możesz robić w wydarzeniach, przedstawienie. Ta wersja demonstracyjna zawiera 2 obszary robocze Blockly, które są synchronizowane za pomocą zdarzeń.