ฟิลด์มุม

ช่องมุมจะเก็บตัวเลขเป็นค่า และสตริงเป็นข้อความ ค่าของช่วงนี้จะอยู่ระหว่าง 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 เท่ากับ 70

พร็อพเพอร์ตี้ ROUND มีค่าเริ่มต้นเป็น 15 ตั้งค่าเป็น 0 หากต้องการปิดใช้การสแนป

คุณสมบัตินี้เป็นพร็อพเพอร์ตี้ส่วนกลาง ดังนั้นจึงจะแก้ไขช่องมุมทั้งหมดเมื่อตั้งค่า

ทิศทาง

พร็อพเพอร์ตี้ Blockly.FieldAngle.CLOCKWISE จะเปลี่ยนทิศทางที่ทำให้ค่ามุมเพิ่มขึ้น การตั้งค่านี้เป็น true ทำให้มุมเพิ่มขึ้นเมื่อมีการย้ายตัวเลือกตามเข็มนาฬิกา การตั้งค่าเป็น false จะทำให้มุมเพิ่มขึ้นเมื่อย้ายทวนเข็มนาฬิกา

ตั้งค่า CLOCKWISE จริง

ฟิลด์มุมที่มี CLOCKWISE ตั้งค่าเป็น &quot;จริง&quot;

ตั้งค่า CLOCKWISE เป็นเท็จ

ฟิลด์มุมที่ตั้งค่า CLOCKWISE เป็นเท็จ

พร็อพเพอร์ตี้ CLOCKWISE มีค่าเริ่มต้นเป็น false ซึ่งหมายความว่าการเคลื่อนไหวทวนเข็มนาฬิกาจะทำให้มุมเพิ่มขึ้น

คุณสมบัตินี้เป็นพร็อพเพอร์ตี้ส่วนกลาง ดังนั้นจึงจะแก้ไขช่องมุมทั้งหมดเมื่อตั้งค่า

ตำแหน่งศูนย์

พร็อพเพอร์ตี้ Blockly.FieldAngle.OFFSET ตั้งค่าตำแหน่ง 0 องศา โดยค่าเริ่มต้น 0 องศาจะอยู่ในแนวเดียวกับแกน X ที่เป็นบวก (ไปทางขวา) จากนั้นคุณสมบัตินี้จะ "ออฟเซ็ต" ที่ตำแหน่งตามตัวเลขหลายๆ องศา

เครื่องมือเลือกมุม 0 อยู่ด้านขวา

เครื่องมือเลือกมุม 0 ที่ด้านบน

พร็อพเพอร์ตี้ OFFSET จะมีค่าเริ่มต้นเป็น 0 ซึ่งหมายความว่าค่า 0 องศาจะอยู่ในแนวเดียวกับแกน X ที่เป็นบวก

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

ช่วง

พร็อพเพอร์ตี้ Blockly.FieldAngle.WRAP จะกำหนดช่วงของค่า ช่วงของค่าเท่ากับ (-360 + WRAP, WRAP) ซึ่งหมายความว่าค่า WRAP เท่ากับ 360 จะให้ช่วงเป็น (0, 359.9) และค่า WRAP ที่ 180 จะทำให้มีช่วงเป็น (-179.9, 180)

เครื่องมือเลือกมุมมีค่าตัดที่ 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