ทุกการเปลี่ยนแปลงในพื้นที่ทำงานจะทริกเกอร์เหตุการณ์ เหตุการณ์เหล่านี้อธิบายสถานะก่อนและหลังของการเปลี่ยนแปลงแต่ละรายการอย่างครบถ้วน
กำลังฟังเหตุการณ์
พื้นที่ทำงานมีเมธอด addChangeListener
และ removeChangeListener
ที่ใช้ฟังสตรีมเหตุการณ์ได้ ตัวอย่างหนึ่งก็คือการสร้างโค้ดแบบเรียลไทม์
อีกตัวอย่างหนึ่งคือการสาธิตขีดจำกัดการบล็อกสูงสุด
เช่นเดียวกับกรณีทั่วไป ทั้ง 2 ตัวอย่างนี้ไม่ได้สนใจเหตุการณ์ทริกเกอร์ เพียงแค่ดูสถานะปัจจุบันของพื้นที่ทำงาน
Listener เหตุการณ์ที่ซับซ้อนมากขึ้นจะดูเหตุการณ์ทริกเกอร์ ตัวอย่างต่อไปนี้จะตรวจจับเมื่อผู้ใช้สร้างความคิดเห็นแรก ออกการแจ้งเตือน แล้วหยุดฟัง และจะไม่มีการทริกเกอร์การแจ้งเตือนอีก
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);
คุณเพิ่ม Listener ไปยังพื้นที่ทำงานของ Flyout เพื่อฟังเหตุการณ์ทั้งหมดที่เกิดขึ้นภายใน Flyout ได้
var flyoutWorkspace = yourWorkspace.getFlyout().getWorkspace();
flyoutWorkspace.addChangeListener(onFirstComment);
การบล็อกมีอีกวิธีหนึ่งในการฟังสตรีมเหตุการณ์ บล็อกสามารถกำหนดฟังก์ชัน onchange
หรือใช้ setOnChange เพื่อตั้งค่าฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่มีการเปลี่ยนแปลงในพื้นที่ทำงานของการบล็อก
ประเภทกิจกรรม
ดูข้อมูลเกี่ยวกับแต่ละเหตุการณ์ในเอกสารอ้างอิง
เดโม
ลองดูตัวอย่างสิ่งดีๆ ที่คุณสามารถทำได้โดยใช้กิจกรรมจากการสาธิตแบบมิเรอร์ เดโมนี้มีพื้นที่ทำงาน Blockly 2 พื้นที่ที่ซิงค์กันโดยใช้เหตุการณ์