Campos numéricos

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