数字字段

数字字段将数字存储为其 value,将字符串存储为其 text。现在是 value 始终是一个有效的数字,根据给定的约束条件定义 在创建时指定的字段其文本可以是在编辑器中输入的任何字符串。

数字字段

编辑器已打开的编号字段

收起的块上的数字字段

恣意创作

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>

field 节点的 name 属性包含引用数字的字符串 字段,节点的内部 text 是要应用于该字段的 value。通过 内部文本值遵循与构造函数值相同的规则。

限制条件

限制条件可以在字段定义中设置,也可以通过使用 setConstraints 函数。

最小值

min 值用于设置字段可以接受的最小/最负值 包含。

最大值

max 值用于设置字段允许的最大/正值 包含。

舍入

precision 会将值四舍五入为最接近的精度倍数。可以是 用于使该字段仅接受 .01、10、42 等的倍数。

常见限制条件

正数

要强制字段仅接受正数,请将 min 值设置为 1.

整数

如需强制字段仅接受整数,请将 precision 设置为 1。

创建数字验证器

数字字段的值是一个数字,因此所有验证器都必须接受 number 和 返回 numbernullundefined

下面是一个将值更改为 0 或 1 的验证器示例 具体取决于其值是奇数还是偶数。

function(newValue) {
  return newValue % 2;
}