Pola liczbowe

Pole liczbowe przechowuje liczbę jako value, i ciąg znaków jako text. Jego value jest zawsze prawidłową liczbą zgodnie z ograniczeniami określonymi dla pola podczas jego tworzenia. Tekst może być dowolnym ciągiem znaków wpisanym 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 poszarpane prawe krawędzie, 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 liczb przyjmuje te argumenty:

value powinna być rzutowana na liczbę. Jeśli tak nie jest, używana jest wartość 0.

Serializacja

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óra ma zostać zastosowana do pola. Wartość jest zgodna z tymi samymi regułami co wartość konstruktora.

XML

Kod XML dla 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 text węzła to value, która ma zostać zastosowana do pola. Wartość tekstu wewnętrznego jest zgodna z tymi samymi regułami co wartość konstruktora.

Ograniczenia

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

Wartość minimalna

Wartość min ustawia 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ąglanie

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

Typowe ograniczenia

Liczby dodatnie

Aby wymusić akceptowanie przez pole tylko liczb dodatnich, ustaw wartość min na 1.

Liczby całkowite

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

Tworzenie walidatora liczb

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 wartość była 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.