체크박스 필드

체크박스 필드는 문자열을 값으로 저장하고 문자열을 텍스트로 저장합니다. 값은 'TRUE' 또는 'FALSE'이고 텍스트는 'true' 또는 'false'입니다.

체크박스 필드

접힌 블록의 체크박스 입력란

제작

JSON

{
  "type": "example_checkbox",
  "message0": "checkbox: %1",
  "args0": [
    {
      "type": "field_checkbox",
      "name": "FIELDNAME",
      "checked": true
    }
  ]
}

JavaScript

Blockly.Blocks['example_checkbox'] = {
  init: function() {
    this.appendDummyInput()
        .appendField('checkbox:')
        .appendField(new Blockly.FieldCheckbox(true), 'FIELDNAME');
  }
};

체크박스 생성자는 선택적 값과 선택적 validator를 사용합니다. 선택사항 값은 'TRUE', 'FALSE' 또는 불리언이어야 합니다. 그렇지 않으면 기본값이 false입니다.

직렬화

JSON

체크박스 필드의 JSON은 다음과 같습니다.

{
  "fields": {
    "FIELDNAME": true
  }
}

여기서 FIELDNAME는 체크박스 필드를 참조하는 문자열이며, 값은 필드에 적용할 값입니다. 값은 불리언이어야 합니다.

XML

체크박스 필드의 XML은 다음과 같습니다.

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

또는

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

여기서 name 속성은 체크박스 필드를 참조하는 문자열을 포함하며 내부 텍스트는 필드에 적용할 값입니다. 내부 텍스트 값은 생성자 값과 동일한 규칙을 따릅니다.

역직렬화 및 재직렬화 후에는 모든 내부 텍스트 값이 대문자로 표시됩니다 ('TRUE' 또는 'FALSE'). 이는 작업공간을 디핑할 때 중요할 때가 있습니다.

맞춤설정

체크표시 문자

Blockly.FieldCheckbox.CHECK_CHAR 속성을 사용하여 체크표시 모양을 변경할 수 있습니다. 값은 유니코드 문자를 포함하는 문자열이어야 합니다.

체크박스에 체크 표시 대신 하트가 표시된 체크박스

CHECK_CHAR 속성의 기본값은 '\u2713' 또는 ✓입니다.

전역 속성이므로 설정하면 모든 체크박스 필드가 수정됩니다.

체크박스 검사기 만들기

체크박스 필드의 값은 'TRUE' 또는 'FALSE'이므로 검사기는 이러한 값 (즉, 문자열)을 수락하고 'TRUE', 'FALSE', null 또는 undefined를 반환해야 합니다.

다음은 체크박스 선택 여부에 따라 텍스트 입력란을 숨기거나 표시하는 검사기의 예입니다.

  validate: function(newValue) {
    var sourceBlock = this.getSourceBlock();
    sourceBlock.showTextField_ = newValue == 'TRUE';
    sourceBlock.updateTextField();

    return newValue;
  },

  updateTextField: function() {
    var input = this.getInput('DUMMY');
    if (this.showTextField_ && !this.getField('TEXT')) {
      input.appendField(new Blockly.FieldTextInput(), 'TEXT');
    } else if (!this.showTextField_ && this.getField('TEXT')) {
      input.removeField('TEXT');
    }
  }

검사기가 있는 체크박스 필드