Числовое поле хранит число в качестве своего value и строку в качестве text . Его value всегда является допустимым числом, определенным ограничениями , заданными для поля при его создании; его текст может быть любой строкой, введенной в его редактор.
Числовое поле

Числовое поле с открытым редактором

Числовое поле в свернутом блоке

Творение
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');
}
};
Конструктор чисел принимает следующие данные:
- необязательное
value - необязательный
min - необязательный
max - дополнительная
precision - необязательный
validator
value должно быть преобразовано в число. В противном случае будет использован 0.
Сериализация
JSON
JSON-объект для числового поля выглядит следующим образом:
{
"fields": {
"FIELDNAME": 0
}
}
Где FIELDNAME — это строка, ссылающаяся на числовое поле, а value — это значение, которое нужно применить к полю. Значение подчиняется тем же правилам, что и значение конструктора.
XML
XML-код для числового поля выглядит следующим образом:
<field name="FIELDNAME">0</field>
Атрибут name узла field содержит строку, ссылающуюся на числовое поле, а внутренний text узла — это value , которое нужно применить к полю. Значение внутреннего текста подчиняется тем же правилам, что и значение конструктора.
Ограничения
Ограничения можно задать в определении поля или с помощью функции setConstraints .
Минимальное значение
Параметр min value задает наименьшее/наиболее отрицательное значение, которое может содержать поле.
Максимальное значение
Параметр max значение" устанавливает наибольшее/наиболее положительное значение, которое может содержать поле.
Округление
precision округляет значение до ближайшего кратного этому значению. Это можно использовать, чтобы поле принимало только кратные 0,01, 10, 42 и т. д.
Общие ограничения
Положительные числа
Чтобы ваше поле принимало только положительные числа, установите min значение равным 1.
Целые числа
Чтобы ваше поле принимало только целые числа, установите precision равной 1.
Создание валидатора чисел
Значение числового поля — это число, поэтому любые валидаторы должны принимать number и возвращать number , null или undefined .
Вот пример валидатора, который изменяет значение на 0 или 1 в зависимости от того, было ли значение четным или нечетным.
function(newValue) {
return newValue % 2;
}
