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