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