数値フィールドには、数値が 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
は数値フィールドを参照する文字列です。
value は、フィールドに適用する値です。この値
コンストラクタ値と同じルールに従います。
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;
}