숫자 필드

숫자 필드는 숫자를 value로 저장하고 문자열을 text로 저장합니다. value는 항상 생성 시 필드에 지정된 제약 조건에 의해 정의된 유효한 숫자입니다. 텍스트는 편집기에 입력된 모든 문자열일 수 있습니다.

숫자 필드

편집기가 열려 있는 숫자 필드

접힌 블록의 숫자 입력란

제작

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

숫자 생성자는 다음을 받습니다.

value는 숫자로 변환해야 합니다. 값이 0이 아니면 0이 사용됩니다.

직렬화

JSON

숫자 필드의 JSON은 다음과 같습니다.

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

여기서 FIELDNAME는 숫자 필드를 참조하는 문자열이며 값은 필드에 적용할 값입니다. 이 값은 생성자 값과 동일한 규칙을 따릅니다.

XML

숫자 필드의 XML은 다음과 같습니다.

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

field 노드의 name 속성은 숫자 필드를 참조하는 문자열을 포함하며, 노드의 내부 text는 필드에 적용할 value입니다. 내부 텍스트 값은 생성자 값과 동일한 규칙을 따릅니다.

제약 조건

제약 조건은 필드 정의에서 설정하거나 setConstraints 함수를 사용하여 설정할 수 있습니다.

최솟값

min 값은 필드에 포함할 수 있는 가장 작은 값 또는 가장 음수 값을 설정합니다.

최댓값

max 값은 필드에 포함할 수 있는 가장 큰 값/가장 큰 양수 값을 설정합니다.

반올림

precision는 값을 가장 가까운 정밀도의 배수로 반올림합니다. 필드가 .01, 10, 42 등의 배수만 허용하도록 하는 데 사용할 수 있습니다.

일반적인 제약 조건

양수

필드에서 양수만 허용하려면 min 값을 1로 설정합니다.

정수

필드에서 정수만 허용하도록 강제하려면 precision을 1로 설정합니다.

숫자 검사기 만들기

숫자 필드의 값은 숫자이므로 모든 검사기는 number를 허용하고 number, null 또는 undefined를 반환해야 합니다.

다음은 값이 홀수인지 짝수인지에 따라 값을 0 또는 1로 변경하는 유효성 검사 도구의 예입니다.

function(newValue) {
  return newValue % 2;
}