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
Campo numerico con l'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 accetta i seguenti valori:
- un
value
facoltativo - un
min
facoltativo - un
max
facoltativo - un
precision
facoltativo - un
validator
facoltativo
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;
}