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