Числовое поле хранит число в качестве 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
— строка, ссылающаяся на числовое поле, а значение — значение, применяемое к полю. Значение подчиняется тем же правилам, что и значение конструктора.
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;
}