Zahlenfelder

In einem Zahlenfeld wird eine Zahl als value und ein String als text gespeichert. Sein value ist immer eine gültige Zahl, die durch die Einschränkungen definiert wird, die dem Feld bei der Erstellung gegeben wurden. Der Text kann ein beliebiger String sein, der in den Editor eingegeben wurde.

Zahlenfeld

Zahlenfeld bei geöffnetem Editor

Zahlenfeld in minimiertem Block

Erstellung

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');
  }
};

Der Zahlenkonstruktor übernimmt Folgendes:

value sollte in eine Zahl umgewandelt werden. Andernfalls wird 0 verwendet.

Serialisierung

JSON

Der JSON-Code für ein Zahlenfeld sieht so aus:

{
  "fields": {
    "FIELDNAME": 0
  }
}

Dabei ist FIELDNAME ein String, der auf ein Zahlenfeld verweist, und der Wert ist der Wert, der auf das Feld angewendet werden soll. Der Wert folgt denselben Regeln wie der Konstruktorwert.

XML

Der XML-Code für ein Zahlenfeld sieht so aus:

<field name="FIELDNAME">0</field>

Das Attribut name des field-Knotens enthält einen String, der auf ein Zahlenfeld verweist. Der innere text des Knotens ist der value, der auf das Feld angewendet werden soll. Der innere Textwert folgt denselben Regeln wie der Konstruktorwert.

Einschränkungen

Einschränkungen können in der Felddefinition oder mit der Funktion setConstraints festgelegt werden.

Mindestwert

Mit dem Wert min wird der kleinste bzw. negativste Wert festgelegt, den das Feld enthalten darf.

Höchstwert

Mit dem Wert max wird der größte/positivste Wert festgelegt, den das Feld enthalten darf.

Rundung

precision rundet den Wert auf das nächste Vielfache der Genauigkeit. Dadurch kann das Feld nur Vielfache von 0, 01, 10, 42 usw .akzeptieren.

Allgemeine Einschränkungen

Positive Zahlen

Wenn Sie erzwingen möchten, dass das Feld nur positive Zahlen akzeptiert, legen Sie den Wert min auf 1 fest.

Ganzzahlen

Wenn Sie erzwingen möchten, dass das Feld nur Ganzzahlen akzeptiert, legen Sie precision auf „1“ fest.

Zahlenvalidierung erstellen

Der Wert eines Zahlenfelds ist eine Zahl. Daher müssen Validierungen einen number akzeptieren und einen number, null oder undefined zurückgeben.

Hier ist ein Beispiel für eine Validierung, die den Wert abhängig davon, ob der Wert ungerade oder gerade ist, in 0 oder 1 ändert.

function(newValue) {
  return newValue % 2;
}