Pole liczbowe zawiera liczbę jako value
, a ciąg znaków jako text
. Jego value
jest zawsze prawidłową liczbą określoną przez ograniczenia określone w polu podczas tworzenia. Jego tekstem może być dowolny ciąg znaków wpisany w edytorze.
Pole liczbowe
Pole liczbowe z otwartym edytorem
Pole liczbowe w zwiniętym bloku
na podstawie trendów
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');
}
};
Konstruktor liczb przyjmuje następujące dane:
- opcjonalnie
value
- opcjonalnie min
- opcjonalną maks.
- opcjonalną dokładność,
- opcjonalny validator.
Element value
powinien rzutować na liczbę. Jeśli wartość nie wynosi 0, używana jest wartość 0.
Serializacja
JSON
Kod JSON pola liczby wygląda tak:
{
"fields": {
"FIELDNAME": 0
}
}
Gdzie FIELDNAME
to ciąg znaków odwołujący się do pola liczbowego, a wartość to wartość do zastosowania do pola. Wartość podlega tym samym regułom co wartość konstruktora.
XML
Kod XML pola liczby wygląda tak:
<field name="FIELDNAME">0</field>
Atrybut name
węzła field
zawiera ciąg znaków odwołujący się do pola liczbowego, a wewnętrzna wartość text
węzła to value
, którą należy zastosować do pola. Wewnętrzna wartość tekstowa podlega tym samym regułom co wartość konstruktora.
Ograniczenia
Ograniczenia można ustawić w definicji pola lub za pomocą funkcji setConstraints.
Wartość minimalna
Wartość min
określa najmniejszą/najbardziej ujemną wartość, jaką może zawierać pole.
Wartość maksymalna
Wartość max
ustawia największą/najbardziej dodatnią wartość, jaką może zawierać pole.
Zaokrąglenia
precision
zaokrągla wartość do najbliższej wielokrotności precyzji. Dzięki temu pole akceptuje tylko wielokrotności 0, 01, 10, 42 itd.
Typowe ograniczenia
Liczby dodatnie
Aby wymusić w polu akceptowanie tylko liczb dodatnich, ustaw wartość min
na 1.
Liczby całkowite
Aby wymusić akceptowanie w polu tylko liczb całkowitych, ustaw precision
na 1.
Tworzenie walidatora liczb
Wartość pola liczbowego jest liczbą, więc każdy walidator musi zaakceptować number
i zwrócić number
, null
lub undefined
.
Oto przykład walidatora, który zmienia wartość na 0 lub 1 w zależności od tego, czy wartość jest parzysta czy nieparzysta.
function(newValue) {
return newValue % 2;
}