Pola liczbowe

Pole liczbowe przechowuje liczbę jako value, a ciąg znaków jako text. Jego value jest zawsze prawidłową liczbą zgodnie z ograniczeniami nadanymi polu podczas tworzenia. Tekst może być dowolnym ciągiem znaków wprowadzonym w edytorze.

Pole liczbowe

Blok z etykietą „number:” i polem liczbowym ustawionym na 100.

Pole liczbowe z otwartym edytorem

Ten sam blok z edytowanym polem.

Pole liczbowe w zwiniętym bloku

Ten sam blok po zwinięciu. Ma etykietę „number: 100” i poszarpany prawy brzeg, co oznacza, że jest zwinięta.

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 liczby przyjmuje te wartości:

Wartość value powinna być liczbą. Jeśli nie, użyta zostanie wartość 0.

Publikacja w odcinkach

JSON

Kod JSON dla pola liczbowego wygląda tak:

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

gdzie FIELDNAME to ciąg znaków odwołujący się do pola liczbowego, a wartość to wartość, którą należy zastosować w polu. Wartość jest zgodna z tymi samymi regułami co wartość konstruktora.

XML

Kod XML pola liczbowego 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ętrzny element text węzła to value, który ma zostać zastosowany do pola. Wartość tekstu wewnętrznego 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 określa największą/najbardziej dodatnią wartość, jaką może zawierać pole.

Zaokrąglanie

Funkcja precision zaokrągla wartość do najbliższej wielokrotności precyzji. Można go użyć, aby pole akceptowało tylko wielokrotności wartości 0,01, 10, 42 itp.

Typowe ograniczenia

Liczby dodatnie

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

Liczby całkowite

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

Tworzenie weryfikatora numerów

Wartość pola liczbowego jest liczbą, więc wszystkie walidatory muszą akceptować number i zwracać number, null lub undefined.

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

function(newValue) {
  return newValue % 2;
}

Animowany GIF pokazujący działanie walidatora. Gdy użytkownik wpisze 10 i kliknie w innym miejscu, pole zostanie ustawione na 0. Gdy użytkownik wpisze 11 i kliknie w innym miejscu, pole zostanie ustawione na 1.