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.