In einem Zahlenfeld wird eine Zahl als value
und ein String als text
gespeichert. Die value
ist immer eine gültige Zahl, wie in den Einschränkungen definiert, die dem Feld bei der Erstellung zugewiesen wurden. Der Text kann ein beliebiger String sein, der in den Editor eingegeben wird.
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 Konstruktor für Zahlen akzeptiert Folgendes:
- ein optionales
value
- ein optionaler Min.
- ein optionaler max
- eine optionale Genauigkeit
- einen optionalen Validator
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 „Wert“ ist der Wert, der auf das Feld angewendet werden soll. Für den Wert gelten dieselben Regeln wie für den Konstruktorwert.
XML
Die XML-Datei für ein Zahlenfeld sieht so aus:
<field name="FIELDNAME">0</field>
Das name
-Attribut des field
-Knotens enthält einen String, der auf ein Zahlenfeld verweist, und die innere text
des Knotens ist die value
, die auf das Feld angewendet werden soll. Für den inneren Textwert gelten dieselben Regeln wie für den Konstruktorwert.
Einschränkungen
Einschränkungen können in der Felddefinition oder mit der Funktion setConstraints festgelegt werden.
Mindestwert
Mit dem min
-Wert 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. So können Sie festlegen, dass im Feld nur ein Vielfaches von 0,01, 10, 42 usw .zulässig ist.
Gängige Einschränkungen
Positive Zahlen
Wenn in Ihrem Feld nur positive Zahlen zulässig sein sollen, setzen Sie den Wert für min
auf 1.
Ganzzahlen
Wenn in Ihrem Feld nur Ganzzahlen zulässig sein sollen, setzen Sie precision
auf 1.
Zahlüberprüfung erstellen
Der Wert eines Zahlenfelds ist eine Zahl. Alle Validatoren müssen also eine number
akzeptieren und eine number
, null
oder undefined
zurückgeben.
Hier ein Beispiel für einen Validator, der den Wert in 0 oder 1 ändert, je nachdem, ob der Wert gerade oder ungerade ist.
function(newValue) {
return newValue % 2;
}