复选框字段

复选框字段存储字符串作为其值,将字符串存储为其文本。其 值为 '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');
  }
};

复选框构造函数接受一个可选值和一个可选 验证器。可选值应为 '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 属性可用于更改 标记的外观。该值应为包含 Unicode 的字符串 字符。

带有心形而非勾选标记的复选框字段

CHECK_CHAR 属性默认为“\u2713”或 ✓。

这是一个全局属性,因此会在设置完毕后修改所有复选框字段。

创建复选框验证程序

复选框字段的值为 'TRUE''FALSE',因此验证器应 接受这些值(即字符串),并返回 'TRUE''FALSE'nullundefined

下面是一个验证器示例,它会根据 是否选中该复选框:

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

带有验证器的复选框字段