Um campo numérico armazena um número como value
e uma string como text
. Seu value
é sempre um número válido, conforme definido pelas restrições dadas aos
no campo durante a criação. o texto pode ser qualquer string inserida no editor.
Campo de número
Campo numérico com 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úmero recebe o seguinte:
O value
precisa converter em um número. Se não houver 0, será usado.
Serialização
JSON
O JSON para um campo numérico tem esta aparência:
{
"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 para um campo numérico tem esta aparência:
<field name="FIELDNAME">0</field>
O atributo name
do nó field
contém uma string que faz referência a um número
e o text
interno do nó é o value
a ser aplicado ao campo. A
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 setConstraints função.
Valor mínimo
O valor min
define o menor valor/mais negativo que o campo pode
contêm.
Valor máximo
O valor max
define o maior/mais positivo para o campo.
contêm.
Arredondamento
O precision
arredonda o valor para o múltiplo de precisão mais próximo. Isso pode ser
usado para fazer com que o campo aceite 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, então todos os validadores precisam aceitar um number
e
retornam number
, null
ou undefined
.
Este é um exemplo de um validador que altera o valor para 0 ou 1 dependendo se o valor é par ou ímpar.
function(newValue) {
return newValue % 2;
}