คำจำกัดความของบล็อกคืออะไร

คำจำกัดความของบล็อกคือออบเจ็กต์ที่กำหนดบล็อกที่กำหนดเอง เช่น กำหนดรูปลักษณ์ของบล็อก (ข้อความ ฟิลด์ การเชื่อมต่อ สี ฯลฯ) รวมถึงลักษณะการทำงาน (ตัวแฮนเดิลเหตุการณ์ระดับบล็อก ฯลฯ)

เช่น บล็อกนี้

บล็อก `string_length`

สามารถกำหนดใน JSON หรือ JavaScript ได้ดังนี้

JSON

Blockly.common.defineBlocksWithJsonArray([{
  "type": "string_length",
  "message0": 'length of %1',
  "args0": [
    {
      "type": "input_value",
      "name": "VALUE",
      "check": "String"
    }
  ],
  "output": "Number",
  "colour": 160,
  "tooltip": "Returns number of letters in the provided text.",
  "helpUrl": "http://www.w3schools.com/jsref/jsref_length_string.asp"
}]);

defineBlocksWithJsonArray สร้างคำจำกัดความของบล็อกจากออบเจ็กต์ JSON

JavaScript

Blockly.Blocks['string_length'] = {
   init: function() {
     this.appendValueInput('VALUE')
         .setCheck('String')
         .appendField('length of');
     this.setOutput(true, 'Number');
     this.setColour(160);
     this.setTooltip('Returns number of letters in the provided text.');
     this.setHelpUrl('http://www.w3schools.com/jsref/jsref_length_string.asp');
   }
};

เมื่อใช้ JavaScript คุณจะสร้างคำจำกัดความของบล็อกได้โดยตรง

วิธีการทำงานของคำจำกัดความของบล็อก

คำจำกัดความของบล็อกคือ mixin ที่มีพร็อพเพอร์ตี้ที่มีค่าเป็นฟังก์ชัน เมื่อมีการสร้างอินสแตนซ์ของบล็อกใหม่ ระบบจะคัดลอกพร็อพเพอร์ตี้เหล่านี้ ไปยังออบเจ็กต์บล็อกที่สร้างขึ้นใหม่ Blockly จะเรียกใช้ฟังก์ชันเหล่านี้เพื่อ เรียกใช้ลักษณะการทำงานที่กำหนดเอง

เนื่องจากฟังก์ชันคำจำกัดความจะรวมอยู่ในออบเจ็กต์บล็อก

  • คีย์เวิร์ด this ในฟังก์ชันคำจำกัดความหมายถึงออบเจ็กต์บล็อก กล่าวคือ ใช้เพื่อเข้าถึงเมธอดและพร็อพเพอร์ตี้สาธารณะในคลาส Block (หรือ BlockSvg) ได้

Blockly กำหนดฟังก์ชันจำนวนเล็กน้อยที่คุณใช้ปรับแต่งบล็อกได้ ฟังก์ชันที่พบบ่อยที่สุดคือ init ซึ่ง Blockly จะเรียกใช้เพื่อเริ่มต้นบล็อกและ ใช้เพื่อกำหนดรูปลักษณ์ของบล็อก ดูรายการทั้งหมดได้ที่พร็อพเพอร์ตี้ที่มีค่าเป็นฟังก์ชันในคลาส Block และ BlockSvg พร็อพเพอร์ตี้เหล่านี้จะสร้างอินเทอร์เฟซสําหรับคําจํากัดความของบล็อกเพื่อ ใช้ได้อย่างมีประสิทธิภาพ โดยพร็อพเพอร์ตี้ทั้งหมดเป็นพร็อพเพอร์ตี้ที่ไม่บังคับ

คำจำกัดความของบล็อกยังมีฟังก์ชันที่กำหนดเองได้ด้วย แม้ว่า Blockly จะไม่เรียกใช้ฟังก์ชันเหล่านี้โดยตรง แต่สามารถใช้เพื่อติดตั้งฟังก์ชันอื่นๆ ได้ ตัวอย่างเช่น ตัวแฮนเดิลเหตุการณ์ระดับบล็อก (พร็อพเพอร์ตี้ Block.onchange) สามารถ มอบหมายเหตุการณ์ต่างๆ ให้กับฟังก์ชันที่กำหนดเองต่างๆ ได้

วิธีสร้างคำจำกัดความของบล็อก

การสร้างคำจำกัดความของบล็อกทำได้หลายวิธี ดังนี้

  • ใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Blockly เพื่อกำหนดรูปลักษณ์ของบล็อก คัดลอก JSON หรือ JavaScript ที่สร้างขึ้นไปยังโค้ดของคุณ แล้วเพิ่มโค้ดที่กำหนดเองตาม ต้องการ ดูข้อมูลเพิ่มเติมได้ที่เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Blockly
  • ค้นหาบล็อกที่คล้ายกัน คัดลอกคำจำกัดความของบล็อกนั้น แล้วแก้ไขตามต้องการ ดูข้อมูลเพิ่มเติมได้ที่แก้ไขคำจำกัดความที่มีอยู่
  • เขียนคำจำกัดความของบล็อกด้วยตนเอง ดูข้อมูลเพิ่มเติมได้ที่ JSON และ JavaScript