Acara

Setiap perubahan pada ruang kerja akan memicu 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 apa peristiwa pemicunya. Mereka hanya melihat status ruang kerja saat ini.

Pemroses peristiwa yang lebih canggih akan melihat peristiwa pemicu. Contoh berikut mendeteksi saat pengguna membuat komentar pertamanya, 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 aliran peristiwa. Blok dapat menentukan fungsi onchange atau menggunakan setOnChange untuk menetapkan fungsi yang akan dipanggil setiap kali perubahan terjadi di ruang kerja blok.

Jenis peristiwa

Lihat dokumentasi referensi untuk mengetahui informasi tentang setiap peristiwa.

Demo

Untuk contoh hal keren yang dapat Anda lakukan dengan peristiwa, lihat demo mirror. Demo ini memiliki dua ruang kerja Blockly yang tetap disinkronkan menggunakan peristiwa.