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
value
opcional - 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;
}