ช่องตัวเลข

ช่องตัวเลขจะเก็บตัวเลขเป็น value และสตริงเป็น text value ของ URL จะเป็นตัวเลขที่ถูกต้องตามที่กำหนดโดยข้อจำกัดที่กำหนดให้กับช่องขณะสร้างเสมอ ข้อความของ URL จะเป็นสตริงใดๆ ที่ป้อนลงในเครื่องมือแก้ไขก็ได้

ช่องตัวเลข

ช่องตัวเลขที่เปิดเครื่องมือแก้ไขอยู่

ช่องตัวเลขบนบล็อกที่ยุบอยู่

การสร้างวิดีโอ

JSON

{
  "type": "example_number",
  "message0": "number: %1",
  "args0": [
    {
      "type": "field_number",
      "name": "FIELDNAME",
      "value": 100,
      "min": 0,
      "max": 100,
      "precision": 10
    }
  ]
}

JavaScript

Blockly.Blocks['example_number'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("number:")
        .appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
  }
};

ตัวสร้างตัวเลขจะดำเนินการต่อไปนี้

value ควรแคสต์ไปยังตัวเลข หากไม่ใช่ 0 ระบบจะใช้

การทำให้เป็นอนุกรม

JSON

JSON สำหรับช่องตัวเลขจะมีลักษณะดังนี้

{
  "fields": {
    "FIELDNAME": 0
  }
}

โดย FIELDNAME เป็นสตริงที่อ้างอิงช่องตัวเลข และค่าคือค่าที่จะนำไปใช้กับช่องนี้ ค่าดังกล่าวเป็นไปตามกฎเดียวกันกับค่าตัวสร้าง

XML

ช่อง XML สำหรับตัวเลขจะมีลักษณะดังนี้

<field name="FIELDNAME">0</field>

แอตทริบิวต์ name ของโหนด field มีสตริงที่อ้างอิงช่องตัวเลข และ text ภายในของโหนดคือ value ที่จะใช้กับช่องนี้ ค่าข้อความภายในเป็นไปตามกฎเดียวกันกับค่าของตัวสร้าง

ข้อจำกัด

คุณจะกำหนดข้อจำกัดได้ในคำจำกัดความช่องหรือโดยใช้ฟังก์ชัน setConstraints

ค่าต่ำสุด

ค่า min จะกำหนดค่าที่น้อยที่สุด/เป็นค่าลบที่สุดที่ช่องนั้นแสดงได้

ค่าสูงสุด

ค่า max จะกำหนดค่าสูงสุด/บวกมากที่สุดที่ช่องนั้นอนุญาตให้มีได้

ปัดเศษ

precision จะปัดเศษค่าให้เป็นจำนวนทวีคูณที่ใกล้เคียงที่สุดของความแม่นยํา สามารถใช้เพื่อทำให้ช่องนี้ยอมรับเฉพาะพหุคูณของ .01, 10, 42 ฯลฯ

ข้อจำกัดทั่วไป

ตัวเลขจำนวนบวก

หากต้องการบังคับให้ช่องยอมรับเฉพาะตัวเลขจำนวนบวก ให้ตั้งค่า min เป็น 1

จำนวนเต็ม

หากต้องการบังคับให้ช่องยอมรับเฉพาะจำนวนเต็ม ให้ตั้งค่า precision เป็น 1

การสร้างเครื่องมือตรวจสอบหมายเลข

ค่าของช่องตัวเลขเป็นตัวเลข ดังนั้นโปรแกรมตรวจสอบจะต้องยอมรับ number และแสดงผล number, null หรือ undefined

นี่คือตัวอย่างของโปรแกรมตรวจสอบที่เปลี่ยนค่าเป็น 0 หรือ 1 ขึ้นอยู่กับว่าค่าดังกล่าวเป็นเลขคี่หรือเลขคู่

function(newValue) {
  return newValue % 2;
}