숫자 필드

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

숫자 필드

'number:' 라벨이 지정된 블록과 100으로 설정된 숫자 필드

편집기가 열려 있는 숫자 입력란

수정 중인 필드가 있는 동일한 블록

접힌 블록의 번호 필드

접힌 후의 동일한 블록 '숫자: 100' 라벨과 접혀 있음을 보여주는 들쭉날쭉한 오른쪽 가장자리가 있습니다.

생성

JSON

{
  "type": "example_number",
  "message0": "number: %1",
  "args0": [
    {
      "type": "field_number",
      "name": "FIELDNAME",
      "value": 100,
      "min": 0,
      "max": 100,
      "precision": 10
    }
  ]
}

자바스크립트

Blockly.Blocks['example_number'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("number:")
        .appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
  }
};

숫자 생성자는 다음을 사용합니다.

value는 숫자로 변환해야 합니다. 그렇지 않으면 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;
}

검사기가 작동하는 모습을 보여주는 애니메이션 GIF 사용자가 10을 입력하고 다른 곳을 클릭하면 필드가 0으로 설정됩니다. 사용자가 11을 입력하고 다른 곳을 클릭하면 필드가 1로 설정됩니다.