숫자 필드는 숫자를 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;
}