Campi numerici

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

Campo numerico

Un blocco con l'etichetta "numero:" e un campo numerico impostato su
100.

Campo numerico con l'editor aperto

Lo stesso blocco con il campo in fase di modifica.

Campo numerico nel blocco compresso

Lo stesso blocco dopo essere stato compresso. Ha l'etichetta "number: 100" e un
bordo destro frastagliato per indicare che è
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 accetta i seguenti valori:

value deve essere convertito in un numero. In caso contrario, verrà utilizzato 0.

Serializzazione

JSON

Il codice JSON per un campo numerico è il 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

L'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 campo numerico e l'elemento text interno del nodo è il value da applicare al campo. 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 la funzione setConstraints.

Valore minimo

Il valore min imposta il valore più piccolo/più negativo che il campo può contenere.

Valore massimo

Il valore max imposta il valore più grande/più positivo che il campo può contenere.

Arrotondamento

La funzione precision arrotonda il valore al multiplo più vicino della precisione. 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 forzare il campo ad accettare solo numeri positivi, imposta il valore di min su 1.

Numeri interi

Per forzare il campo ad accettare solo numeri interi, imposta precision su 1.

Creazione di un validatore di numeri

Il valore di un campo numerico è un numero, quindi tutti i validatori devono accettare un number e restituire un number, null o undefined.

Ecco un esempio di un validatore che cambia il valore in 0 o 1 a seconda che il valore sia dispari o pari.

function(newValue) {
  return newValue % 2;
}

Una GIF animata che mostra il funzionamento del validatore. Quando l&#39;utente digita 10 e
clicca altrove, il campo viene impostato su 0. Quando l&#39;utente digita 11 e fa clic
altrove, il campo viene impostato su 1.