ช่องมุมจะเก็บตัวเลขเป็นค่า และสตริงเป็นข้อความ ค่าของช่วงนี้จะอยู่ระหว่าง 0 ถึง 360 (ช่วงนี้สามารถเปลี่ยนแปลงได้) โดยข้อความของค่าจะเป็นสตริงใดๆ ที่ป้อนลงในตัวแก้ไขได้
ฟิลด์มุม
ช่องมุมที่มีเครื่องมือแก้ไข
ฟิลด์มุมที่ยุบ
การสร้างวิดีโอ
JSON
{
"type": "example_angle",
"message0": "angle: %1",
"args0": [
{
"type": "field_angle",
"name": "FIELDNAME",
"angle": 90
}
]
}
JavaScript
Blockly.Blocks['example_angle'] = {
init: function() {
this.appendDummyInput()
.appendField('angle:')
.appendField(new Blockly.FieldAngle(90), 'FIELDNAME');
}
};
ตัวสร้างมุมจะใช้ค่าที่ไม่บังคับและvalidatorที่ไม่บังคับ ระบบจะใช้ศูนย์ เป็นค่าเริ่มต้น หากไม่มีการระบุค่า หรือค่าที่กำหนดไม่ได้แปลงเป็นตัวเลข
การทำให้เป็นอนุกรม
JSON
JSON สำหรับฟิลด์มุมมีลักษณะดังนี้
{
"fields": {
"FIELDNAME": 0
}
}
โดย FIELDNAME
เป็นสตริงที่อ้างอิงช่องมุม และค่าคือค่าที่จะนำไปใช้กับช่องนี้ ค่าดังกล่าวเป็นไปตามกฎเดียวกันกับค่าตัวสร้าง
XML
XML สำหรับฟิลด์มุมมีลักษณะดังนี้
<field name="FIELDNAME">0</field>
โดยที่แอตทริบิวต์ name
มีสตริงที่อ้างอิงช่องมุม และข้อความภายในคือค่าที่จะนำไปใช้กับช่องนี้ ค่าข้อความด้านในจะใช้กฎเดียวกันกับค่าตัวสร้าง
การปรับแต่งช่อง
การสแนป
คุณสมบัติ Blockly.FieldAngle.ROUND
จะเปลี่ยนค่าของเครื่องมือเลือกมุมเป็น "สแนป" เมื่อใช้เมาส์
ต่อไปนี้คือตัวอย่างที่มีค่า ROUND
เป็น 70
พร็อพเพอร์ตี้ ROUND
มีค่าเริ่มต้นเป็น 15 ตั้งค่าเป็น 0 หากต้องการปิดใช้การสแนป
คุณสมบัตินี้เป็นพร็อพเพอร์ตี้ส่วนกลาง ดังนั้นจึงจะแก้ไขช่องมุมทั้งหมดเมื่อตั้งค่า
ทิศทาง
พร็อพเพอร์ตี้ Blockly.FieldAngle.CLOCKWISE
จะเปลี่ยนทิศทางที่ทำให้ค่ามุมเพิ่มขึ้น การตั้งค่านี้เป็น true
ทำให้มุมเพิ่มขึ้นเมื่อมีการย้ายตัวเลือกตามเข็มนาฬิกา การตั้งค่าเป็น false
จะทำให้มุมเพิ่มขึ้นเมื่อย้ายทวนเข็มนาฬิกา
ตั้งค่า CLOCKWISE จริง
ตั้งค่า CLOCKWISE เป็นเท็จ
พร็อพเพอร์ตี้ CLOCKWISE
มีค่าเริ่มต้นเป็น false
ซึ่งหมายความว่าการเคลื่อนไหวทวนเข็มนาฬิกาจะทำให้มุมเพิ่มขึ้น
คุณสมบัตินี้เป็นพร็อพเพอร์ตี้ส่วนกลาง ดังนั้นจึงจะแก้ไขช่องมุมทั้งหมดเมื่อตั้งค่า
ตำแหน่งศูนย์
พร็อพเพอร์ตี้ Blockly.FieldAngle.OFFSET
ตั้งค่าตำแหน่ง 0 องศา โดยค่าเริ่มต้น 0 องศาจะอยู่ในแนวเดียวกับแกน X ที่เป็นบวก (ไปทางขวา) จากนั้นคุณสมบัตินี้จะ "ออฟเซ็ต" ที่ตำแหน่งตามตัวเลขหลายๆ องศา
พร็อพเพอร์ตี้ OFFSET
จะมีค่าเริ่มต้นเป็น 0 ซึ่งหมายความว่าค่า 0 องศาจะอยู่ในแนวเดียวกับแกน X ที่เป็นบวก
คุณสมบัตินี้เป็นพร็อพเพอร์ตี้ส่วนกลาง ซึ่งจะแก้ไขช่องมุมทั้งหมดเมื่อตั้งค่า
ช่วง
พร็อพเพอร์ตี้ Blockly.FieldAngle.WRAP
จะกำหนดช่วงของค่า
ช่วงของค่าเท่ากับ (-360 + WRAP, WRAP)
ซึ่งหมายความว่าค่า WRAP
เท่ากับ 360 จะให้ช่วงเป็น (0, 359.9)
และค่า WRAP
ที่ 180 จะทำให้มีช่วงเป็น (-179.9, 180)
พร็อพเพอร์ตี้ WRAP
มีค่าเริ่มต้นเป็น 360 ซึ่งหมายความว่าช่วงของช่องนี้คือ (0,
359.9)
คุณสมบัตินี้เป็นพร็อพเพอร์ตี้ส่วนกลาง ซึ่งจะแก้ไขช่องมุมทั้งหมดเมื่อตั้งค่า
ขนาดเครื่องมือเลือกมุม
พร็อพเพอร์ตี้ Blockly.FieldAngle.HALF
จะเปลี่ยนขนาดของเครื่องมือเลือกมุม ค่านี้จะกำหนดรัศมีของวงกลมรอบนอก หน่วยเป็นพิกเซล
พร็อพเพอร์ตี้ HALF
จะมีค่าเริ่มต้นเป็น 50
คุณสมบัตินี้เป็นพร็อพเพอร์ตี้ส่วนกลาง ซึ่งจะแก้ไขช่องมุมทั้งหมดเมื่อตั้งค่า
รูปแบบการเดินทางทั่วไป
คุณใช้ทิศทาง และตำแหน่งศูนย์ร่วมกันเพื่อสร้างชุดค่าผสมที่น่าสนใจได้ ต่อไปนี้คือ 2 วิธีที่ใช้บ่อย
ไม้โปรแทรคเตอร์
ใช้ 0 องศาทางขวา แล้วปรับ 90 องศาขึ้น
Blockly.FieldAngle.CLOCKWISE = false;
Blockly.FieldAngle.OFFSET = 0;
เข็มทิศ
เลื่อนขึ้น 0 องศา ส่วน 90 องศาถูกต้อง
Blockly.FieldAngle.CLOCKWISE = true;
Blockly.FieldAngle.OFFSET = 90;
การสร้างเครื่องมือตรวจสอบมุม
ค่าของช่องมุมเป็นตัวเลข โปรแกรมตรวจสอบต้องยอมรับตัวเลขและแสดงผลตัวเลข null
หรือ undefined
นี่คือตัวอย่างของโปรแกรมตรวจสอบที่บังคับให้ค่าเป็นผลคูณของ 30
function(newValue) {
return Math.round(newValue / 30) * 30;
}
โปรดสังเกตวิธีที่พร็อพเพอร์ตี้ [ROUND](#snapping)
ของช่องมุมยังคงตั้งค่าไว้เป็น 15 ดังนั้นองค์ประกอบกราฟิกของฟิลด์นี้จึงแสดงค่าพหุคูณของ 15 แทนที่จะเป็น 30