Un champ numérique stocke un nombre en tant que value
et une chaîne en tant que text
. C'est value
est toujours un nombre valide, tel que défini par les contraintes définies pour
le domaine lors de la création ; son texte peut être n'importe
quelle chaîne saisie dans son éditeur.
Champ numérique
Champ numérique avec l'éditeur ouvert
Champ numérique dans le bloc réduit
Création
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');
}
};
Le constructeur de nombre utilise les éléments suivants:
- un
value
facultatif - une valeur min facultative
- une valeur max facultative
- une valeur précision (facultative) :
- un programme de validation facultatif
value
doit être converti en nombre. Sinon, la valeur 0 est utilisée.
Sérialisation
JSON
Le code JSON d'un champ numérique se présente comme suit:
{
"fields": {
"FIELDNAME": 0
}
}
Où FIELDNAME
est une chaîne qui fait référence à un champ numérique, et où
la valeur est celle à appliquer au champ. La valeur
suit les mêmes règles que la valeur du constructeur.
XML
Le code XML d'un champ numérique se présente comme suit:
<field name="FIELDNAME">0</field>
L'attribut name
du nœud field
contient une chaîne faisant référence à un nombre
et la text
interne du nœud est l'value
à appliquer au champ. La
la valeur de texte interne suit les mêmes règles que la valeur du constructeur.
Contraintes
Les contraintes peuvent être définies dans la définition du champ ou à l'aide de la propriété setConstraints .
Valeur minimale
La valeur min
définit la valeur la plus petite/la plus négative que le champ est autorisé à saisir
contient.
Valeur maximale
La valeur max
définit la valeur la plus élevée/la plus positive que le champ est autorisé à saisir.
contient.
Arrondissement
precision
arrondit la valeur au multiple de précision le plus proche. Il peut s'agir
utilisé pour que le champ n'accepte que les multiples de 0,01, 10, 42, etc.
Contraintes courantes
Nombres positifs
Pour forcer votre champ à n'accepter que des nombres positifs, définissez la valeur min
sur
1.
Entiers
Pour forcer votre champ à n'accepter que des entiers, définissez precision
sur 1.
Créer un validateur de nombre
La valeur d'un champ numérique est un nombre. Par conséquent, tous les validateurs doivent accepter un number
et
renvoient number
, null
ou undefined
.
Voici un exemple de programme de validation qui remplace la valeur par 0 ou 1. selon que la valeur est impaire ou égale.
function(newValue) {
return newValue % 2;
}