Peristiwa

Setiap perubahan pada ruang kerja memicu sebuah peristiwa. Peristiwa ini sepenuhnya menjelaskan status sebelum dan sesudah setiap perubahan.

Memproses Peristiwa

Ruang kerja memiliki metode addChangeListener dan removeChangeListener yang dapat digunakan untuk memproses aliran peristiwa. Salah satu contohnya adalah pembuatan kode secara real-time. Contoh lainnya adalah demo batas blok maksimum. Seperti yang sering terjadi, kedua contoh ini tidak peduli dengan peristiwa pemicu. Dia hanya melihat status ruang kerja saat ini.

Pemroses peristiwa yang lebih canggih akan melihat peristiwa pemicu. Contoh berikut mendeteksi saat pengguna membuat komentar pertama, mengeluarkan pemberitahuan, lalu berhenti memproses sehingga tidak ada pemberitahuan lebih lanjut yang dipicu.

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

Untuk memproses peristiwa apa pun yang terjadi di dalam flyout, pemroses dapat ditambahkan ke ruang kerja flyout.

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

Blok memiliki metode lain untuk memproses streaming peristiwa. Blok dapat menentukan fungsi onchange atau menggunakan setOnChange untuk menyetel fungsi yang akan dipanggil setiap kali terjadi perubahan pada ruang kerja blok.

Jenis peristiwa

Baca dokumentasi referensi untuk mengetahui informasi tentang masing-masing peristiwa.

Demo

Untuk contoh hal keren yang dapat Anda lakukan dengan acara, Anda dapat melihat demo pencerminan. Demo ini memiliki dua ruang kerja Blockly yang disinkronkan menggunakan peristiwa.