Un campo numérico almacena un número como su value
y una cadena como su text
. Su value
siempre es un número válido según las restricciones que se le dan al campo en el momento de la creación; su texto podría ser cualquier cadena ingresada en su editor.
Campo de número
Campo de número con el editor abierto
Campo de número 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 toma los siguientes argumentos:
El valor de value
debe convertirse en un número. Si no es así, se usará 0.
Serialización
JSON
El JSON de un campo numérico se ve de la siguiente manera:
{
"fields": {
"FIELDNAME": 0
}
}
Aquí, FIELDNAME
es una cadena que hace referencia a un campo numérico, y el valor es el valor que se aplicará al campo. El valor sigue las mismas reglas que el valor del constructor.
XML
El XML de un campo numérico se ve de la siguiente manera:
<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 del texto interno sigue las mismas reglas que el valor del constructor.
Limitaciones
Las restricciones se pueden establecer en la definición del campo o con la función setConstraints.
Valor mínimo
El valor de min
establece el valor más pequeño o más negativo que se permite que contenga el campo.
Valor máximo
El valor de max
establece el valor más grande o más positivo que puede contener el campo.
Redondeo
El 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 0 .01, 10, 42, etcétera.
Restricciones comunes
Números positivos
Para forzar que tu campo solo acepte números positivos, establece el valor min
en 1.
Números enteros
Para forzar que tu campo solo acepte 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 devolver un number
, null
o undefined
.
A continuación, se muestra un ejemplo de un validador que cambia el valor a 0 o 1 según si el valor era par o impar.
function(newValue) {
return newValue % 2;
}