Um campo numérico armazena um número como value e uma string como text. O value
é sempre um número válido, conforme definido pelas restrições atribuídas
ao 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 em um 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 usa o seguinte:
- um
valueopcional - um
min(em inglês) opcional - um
max(em inglês) opcional - um
precision(em inglês) opcional - um
validator(em inglês) opcional
O value precisa ser convertido em um número. Caso contrário, será usado 0.
Serialização
JSON
O JSON de um campo numérico é assim:
{
"fields": {
"FIELDNAME": 0
}
}
Em que FIELDNAME é uma string que faz referência a um campo numérico, 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 numérico é assim:
<field name="FIELDNAME">0</field>
O atributo name do nó field contém uma string que faz referência a um campo
numérico, 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 função setConstraints.
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 da precisão. Isso pode ser usado para fazer com 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 precision como 1.
Como criar um validador de números
O valor de um campo numérico é 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;
}
