数値フィールド

数値フィールドには、数値が 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 を受け入れ、 numbernull、または undefined を返します。

次に、値を 0 または 1 に変更するバリデータの例を示します。 その値が奇数か偶数かによって

function(newValue) {
  return newValue % 2;
}