Pola liczbowe

Pole liczbowe zawiera liczbę jako value, a ciąg znaków jako text. Jego value jest zawsze prawidłową liczbą określoną przez ograniczenia określone w polu podczas tworzenia. Jego tekstem może być dowolny ciąg znaków wpisany w edytorze.

Pole liczbowe

Pole liczbowe z otwartym edytorem

Pole liczbowe w zwiniętym bloku

na podstawie trendów

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');
  }
};

Konstruktor liczb przyjmuje następujące dane:

Element value powinien rzutować na liczbę. Jeśli wartość nie wynosi 0, używana jest wartość 0.

Serializacja

JSON

Kod JSON pola liczby wygląda tak:

{
  "fields": {
    "FIELDNAME": 0
  }
}

Gdzie FIELDNAME to ciąg znaków odwołujący się do pola liczbowego, a wartość to wartość do zastosowania do pola. Wartość podlega tym samym regułom co wartość konstruktora.

XML

Kod XML pola liczby wygląda tak:

<field name="FIELDNAME">0</field>

Atrybut name węzła field zawiera ciąg znaków odwołujący się do pola liczbowego, a wewnętrzna wartość text węzła to value, którą należy zastosować do pola. Wewnętrzna wartość tekstowa podlega tym samym regułom co wartość konstruktora.

Ograniczenia

Ograniczenia można ustawić w definicji pola lub za pomocą funkcji setConstraints.

Wartość minimalna

Wartość min określa najmniejszą/najbardziej ujemną wartość, jaką może zawierać pole.

Wartość maksymalna

Wartość max ustawia największą/najbardziej dodatnią wartość, jaką może zawierać pole.

Zaokrąglenia

precision zaokrągla wartość do najbliższej wielokrotności precyzji. Dzięki temu pole akceptuje tylko wielokrotności 0, 01, 10, 42 itd.

Typowe ograniczenia

Liczby dodatnie

Aby wymusić w polu akceptowanie tylko liczb dodatnich, ustaw wartość min na 1.

Liczby całkowite

Aby wymusić akceptowanie w polu tylko liczb całkowitych, ustaw precision na 1.

Tworzenie walidatora liczb

Wartość pola liczbowego jest liczbą, więc każdy walidator musi zaakceptować number i zwrócić number, null lub undefined.

Oto przykład walidatora, który zmienia wartość na 0 lub 1 w zależności od tego, czy wartość jest parzysta czy nieparzysta.

function(newValue) {
  return newValue % 2;
}