Un champ numérique stocke un nombre en tant que value
et une chaîne en tant que text
. Son value
est toujours un nombre valide tel que défini par les contraintes appliquées au champ 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 nombres utilise les éléments suivants:
- un
value
facultatif - une valeur min facultative
- une valeur maximale facultative
- une précision facultative
- un validator facultatif
L'élément value
doit être converti en nombre. Dans le cas contraire, 0 sera utilisé.
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 faisant référence à un champ numérique, et la valeur est la valeur à 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 champ numérique, et la text
interne du nœud est la value
à appliquer au champ. 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 fonction setConstraints.
Valeur minimale
La valeur min
définit la valeur la plus petite ou la plus négative que le champ peut contenir.
Valeur maximale
La valeur max
définit la valeur la plus grande et la plus positive que le champ peut contenir.
Arrondi
precision
arrondit la valeur au multiple de précision le plus proche. Cela permet de faire en sorte 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 les 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 outil de validation de numéros
La valeur d'un champ numérique est un nombre. Tous les validateurs doivent donc accepter un number
et renvoyer number
, null
ou undefined
.
Voici un exemple de validateur qui modifie la valeur en 0 ou 1 selon que la valeur est impaire ou paire.
function(newValue) {
return newValue % 2;
}