Campi numerici

Un campo numerico memorizza un numero come value e una stringa come text. È value è sempre un numero valido come definito dai vincoli assegnati a il campo al momento della creazione; il testo può essere qualsiasi stringa inserita nel suo editor.

Campo numerico

Campo numerico con editor aperto

Campo numerico nel blocco compresso

Creazione

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

Il costruttore di numeri prende in considerazione quanto segue:

value deve essere trasmesso a un numero. In caso contrario, verrà utilizzato il valore 0.

Serializzazione

JSON

Il codice JSON per un campo numerico è simile al seguente:

{
  "fields": {
    "FIELDNAME": 0
  }
}

dove FIELDNAME è una stringa che fa riferimento a un campo numerico e il valore è il valore da applicare al campo. Il valore segue le stesse regole del valore del costruttore.

XML

Il codice XML per un campo numerico è simile al seguente:

<field name="FIELDNAME">0</field>

L'attributo name del nodo field contiene una stringa che fa riferimento a un numero e il text interno del nodo è il value da applicare al campo. La il valore del testo interno segue le stesse regole del valore del costruttore.

Vincoli

I vincoli possono essere impostati nella definizione del campo o utilizzando il metodo setConstraints personalizzata.

Valore minimo

Il valore min imposta il valore minimo/più negativo a cui è consentito il campo contengono.

Valore massimo

Il valore max imposta il valore massimo/più positivo a cui è consentito il campo contengono.

Arrotondamento

precision arrotonda il valore al multiplo di precisione più vicino. Può essere utilizzato per fare in modo che il campo accetti solo multipli di 0, 01, 10, 42 e così via.

Vincoli comuni

Numeri positivi

Per fare in modo che il campo accetti solo numeri positivi, imposta il valore min su 1.

Numeri interi

Per fare in modo che il campo accetti solo numeri interi, imposta precision su 1.

Creazione di uno strumento di convalida dei numeri

Il valore di un campo numerico è un numero, pertanto tutti gli strumenti di convalida devono accettare i valori number e restituisce number, null o undefined.

Ecco un esempio di uno strumento di convalida che cambia il valore in 0 o 1 a seconda che il valore fosse pari o dispari.

function(newValue) {
  return newValue % 2;
}