数字字段将数字存储为 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 并返回 number、null 或 undefined。
以下是一个验证器的示例,该验证器会根据值是奇数还是偶数将值更改为 0 或 1。
function(newValue) {
return newValue % 2;
}
