เหตุการณ์

ทุกการเปลี่ยนแปลงในพื้นที่ทำงานจะทริกเกอร์เหตุการณ์ เหตุการณ์เหล่านี้อธิบายสถานะก่อนและหลังของการเปลี่ยนแปลงแต่ละรายการอย่างครบถ้วน

กำลังฟังเหตุการณ์

พื้นที่ทำงานมีเมธอด 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 พื้นที่ที่ซิงค์กันโดยใช้เหตุการณ์