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

สามารถกำหนดใน 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 คุณจะสร้างคำจำกัดความของบล็อกโดยตรง
วิธีการทำงานของคำจำกัดความของบล็อก
คำจำกัดความของบล็อกคือ มิกซ์อิน ที่มี พร็อพเพอร์ตี้ที่มีค่าเป็นฟังก์ชัน เมื่อมีการสร้างอินสแตนซ์ของบล็อกใหม่ ระบบจะคัดลอกพร็อพเพอร์ตี้เหล่านี้ไปยังออบเจ็กต์บล็อกที่สร้างขึ้นใหม่ Blockly จะเรียกฟังก์ชันเหล่านี้เพื่อเรียกใช้ลักษณะการทำงานที่กำหนดเอง
เนื่องจากฟังก์ชันคำจำกัดความจะรวมอยู่ในออบเจ็กต์บล็อก
- คีย์เวิร์ด
thisในฟังก์ชันคำจำกัดความจะอ้างอิงถึงออบเจ็กต์บล็อก นั่นคือ สามารถใช้เพื่อเข้าถึงเมธอดและพร็อพเพอร์ตี้สาธารณะในคลาสBlock(หรือBlockSvg)
Blockly กำหนดฟังก์ชันจำนวนเล็กน้อยที่คุณใช้ปรับแต่งบล็อกได้ ฟังก์ชันที่ใช้กันมากที่สุดคือ init ซึ่ง Blockly จะเรียกใช้เพื่อเริ่มต้นบล็อกและใช้เพื่อกำหนดลักษณะและสัมผัสของบล็อก ดูรายการทั้งหมดได้ที่
พร็อพเพอร์ตี้ที่มีค่าเป็นฟังก์ชันในคลาส
Block และ
BlockSvg
พร็อพเพอร์ตี้เหล่านี้จะสร้างอินเทอร์เฟซสำหรับคำจำกัดความของบล็อกเพื่อใช้ได้อย่างมีประสิทธิภาพ โดยทั้งหมดเป็นพร็อพเพอร์ตี้ที่ไม่บังคับ
คำจำกัดความของบล็อกยังมีฟังก์ชันที่กำหนดเองได้ด้วย แม้ว่า Blockly จะไม่เรียกใช้ฟังก์ชันเหล่านี้โดยตรง แต่สามารถใช้เพื่อใช้ฟังก์ชันอื่นๆ ได้ ตัวอย่างเช่น ตัวจัดการเหตุการณ์ระดับบล็อก (พร็อพเพอร์ตี้ Block.onchange) สามารถมอบหมายเหตุการณ์ต่างๆ ให้กับฟังก์ชันที่กำหนดเองต่างๆ ได้
วิธีสร้างคำจำกัดความของบล็อก
คุณสร้างคำจำกัดความของบล็อกได้หลายวิธีดังนี้
- ใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Blockly เพื่อกำหนดลักษณะและสัมผัสของบล็อก คัดลอก JSON หรือ JavaScript ที่สร้างขึ้นไปยังโค้ด แล้วเพิ่มโค้ดที่กำหนดเองตามต้องการ ดูข้อมูลเพิ่มเติมได้ที่ เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Blockly Tools
- ค้นหาบล็อกที่คล้ายกัน คัดลอกคำจำกัดความ แล้วแก้ไขตามต้องการ ดูข้อมูลเพิ่มเติมได้ที่แก้ไขคำจำกัดความที่มีอยู่
- เขียนคำจำกัดความของบล็อกด้วยตนเอง ดูข้อมูลเพิ่มเติมได้ที่ JSON และ JavaScript