Zahlenfelder

In einem Zahlenfeld wird eine Zahl als value und ein String als text gespeichert. Der value-Wert ist immer eine gültige Zahl, wie durch die Einschränkungen definiert, die beim Erstellen des Felds festgelegt wurden. Der Text kann ein beliebiger String sein, der in den Editor eingegeben wurde.

Zahlenfeld

Ein Block mit dem Label „number:“ und einem auf 100 festgelegten Zahlenfeld.

Zahlenfeld mit geöffnetem Editor

Derselbe Block, in dem das Feld bearbeitet wird.

Zahlenfeld in minimiertem Block

Derselbe Block nach dem Minimieren. Es hat das Label „number: 100“ und einen gezackten rechten Rand, um anzuzeigen, dass es minimiert ist.

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 akzeptiert Folgendes:

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

Serialisierung

JSON

Das JSON 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

Das XML für ein Zahlenfeld sieht so aus:

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

Das Attribut name des Knotens field enthält einen String, der auf ein Zahlenfeld verweist, und das 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/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

Mit precision wird der Wert auf das nächste Vielfache der Genauigkeit gerundet. Damit kann das Feld so konfiguriert werden, dass nur Vielfache von 0,01, 10, 42 usw .akzeptiert werden.

Allgemeine Einschränkungen

Positive Zahlen

Wenn in Ihrem Feld nur positive Zahlen zulässig sein sollen, legen Sie den Wert min auf 1 fest.

Ganzzahlen

Wenn in Ihrem Feld nur Ganzzahlen akzeptiert werden sollen, setzen Sie precision auf 1.

Zahlenvalidierung erstellen

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

Hier ist ein Beispiel für einen Validator, der den Wert in 0 oder 1 ändert, je nachdem, ob der Wert ungerade oder gerade war.

function(newValue) {
  return newValue % 2;
}

Ein animiertes GIF, das zeigt, wie der Validator funktioniert. Wenn der Nutzer „10“ eingibt und dann auf eine andere Stelle klickt, wird das Feld auf „0“ gesetzt. Wenn der Nutzer „11“ eingibt und dann an eine andere Stelle klickt, wird das Feld auf „1“ gesetzt.