Um campo de número armazena um número como value e uma string como text. O value
é sempre um número válido, conforme definido pelas restrições fornecidas a
o campo na criação. O texto pode ser qualquer string inserida no editor.
Campo de número

Campo de número com o editor aberto

Campo de número no bloco recolhido

Criação
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');
}
};
O construtor de números recebe o seguinte:
O value precisa ser convertido em um número. Se não for, 0 será usado.
Serialização
JSON
O JSON de um campo de número é assim:
{
"fields": {
"FIELDNAME": 0
}
}
Em que FIELDNAME é uma string que faz referência a um campo de número, e o valor é o valor a ser aplicado ao campo. O valor segue as mesmas regras do valor do construtor.
XML
O XML de um campo de número é assim:
<field name="FIELDNAME">0</field>
O atributo name do nó field contém uma string que faz referência a um campo de número, e o text interno do nó é o value a ser aplicado ao campo. O valor do texto interno segue as mesmas regras do valor do construtor.
Restrições
As restrições podem ser definidas na definição do campo ou usando a setConstraints função.
Valor mínimo
O valor min define o menor/mais negativo valor que o campo pode conter.
Valor máximo
O valor max define o maior/mais positivo valor que o campo pode conter.
Arredondamento
A precision arredonda o valor para o múltiplo mais próximo de precisão. Isso pode ser usado para que o campo aceite apenas múltiplos de 0, 01, 10, 42 etc.
Restrições comuns
Números positivos
Para forçar o campo a aceitar apenas números positivos, defina o valor min como 1.
Números inteiros
Para forçar o campo a aceitar apenas números inteiros, defina a precision como 1.
Como criar um validador de números
O valor de um campo de número é um número. Portanto, todos os validadores precisam aceitar um number e retornar um number, null ou undefined.
Confira um exemplo de um validador que muda o valor para 0 ou 1, dependendo se o valor era ímpar ou par.
function(newValue) {
return newValue % 2;
}
