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
Zahlenfeld mit 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 akzeptiert Folgendes:
- eine optionale
value
- eine optionale
min
- eine optionale
max
- eine optionale
precision
- eine optionale
validator
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;
}