數字欄位會將數字儲存為 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
會將值四捨五入到最接近的精確度倍數。可用於設定欄位只接受 0.01、10、42 等的倍數。
常見限制
正數
如要強制欄位只接受正數,請將 min
值設為 1。
整數
如要強制欄位只接受整數,請將 precision
設為 1。
建立數字驗證器
數字欄位的值是數字,因此任何驗證器都必須接受 number
並傳回 number
、null
或 undefined
。
以下是驗證器的範例,會根據值是奇數或偶數,將值變更為 0 或 1。
function(newValue) {
return newValue % 2;
}