Un campo numérico almacena un número como su value
y una string como su text
. Su value
siempre es un número válido, según lo definido por las restricciones que se le proporcionan al campo en el momento de su creación. Su texto puede ser cualquier cadena que se ingrese en su editor.
Campo numérico
Campo numérico con el editor abierto
Campo numérico en el bloque contraído
Creación
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');
}
};
El constructor de números incluye lo siguiente:
El value
debe convertir a un número. De lo contrario, se usará 0.
Serialización
JSON
El JSON para un campo numérico tiene el siguiente aspecto:
{
"fields": {
"FIELDNAME": 0
}
}
En el ejemplo anterior, FIELDNAME
es una cadena que hace referencia a un campo numérico y el valor es el valor que se aplica al campo. El valor sigue las mismas reglas que el valor del constructor.
XML
El XML de un campo numérico se ve así:
<field name="FIELDNAME">0</field>
El atributo name
del nodo field
contiene una cadena que hace referencia a un campo numérico, y el text
interno del nodo es el value
que se aplicará al campo. El valor de texto interno sigue las mismas reglas que el valor del constructor.
Limitaciones
Las restricciones se pueden establecer en la definición de campo o con la función setConstraints.
Valor mínimo
El valor min
establece el valor más pequeño o más negativo que el campo puede contener.
Valor máximo
El valor max
establece el valor más grande o más positivo que el campo puede contener.
Redondeo
precision
redondea el valor al múltiplo de precisión más cercano. Esto se puede usar para que el campo solo acepte múltiplos de .01, 10, 42, etcétera.
Limitaciones comunes
Números positivos
Para forzar que tu campo solo acepte números positivos, establece el valor min
en 1.
enteros
Para forzar que tu campo acepte solo números enteros, establece precision
en 1.
Cómo crear un validador de números
El valor de un campo numérico es un número, por lo que cualquier validador debe aceptar un number
y mostrar un number
, null
o undefined
.
A continuación, se muestra un ejemplo de un validador que cambia el valor a 0 o 1 en función de si el valor era impar o par.
function(newValue) {
return newValue % 2;
}