チェックボックス フィールドは、値を文字列として、テキストを文字列として保存します。値は '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');
}
}