Anda dapat mengonfigurasi (preset) status blok di kotak alat. Misalnya, Anda dapat menyetel kolom ke nilai default atau menghubungkan dua blok. Anda juga dapat membuat blok bayangan, yang berfungsi sebagai default untuk blok turunan.
Contoh
Berikut beberapa contoh blok preset.
Memblokir dengan nilai kolom preset
Berikut adalah blok math_number
yang kolomnya menampilkan angka 42, bukan
nilai default 0:
Berikut adalah toolbox yang menetapkan kolom ini:
JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type": "math_number",
"fields": {
"NUM": 42
}
},
]
}
XML
<xml id="toolbox" style="display: none">
<block type="math_number">
<field name="NUM">42</field>
</block>
</xml>
Blok yang dihubungkan sebelumnya
Berikut adalah blok controls_for
yang memiliki tiga blok math_number
yang terhubung dengannya:
Berikut adalah toolbox yang melakukan pra-koneksi blok ini:
JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type": "controls_for",
"inputs": {
"FROM": {
"block": {
"type": "math_number",
"fields": {
"NUM": 1
}
}
},
"TO": {
"block": {
"type": "math_number",
"fields": {
"NUM": 10
}
}
},
"BY": {
"block": {
"type": "math_number",
"fields": {
"NUM": 1
}
}
},
}
},
]
}
XML
<xml id="toolbox" style="display: none">
<block type="controls_for">
<value name="FROM">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
<value name="TO">
<block type="math_number">
<field name="NUM">10</field>
</block>
</value>
<value name="BY">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
</block>
</xml>
Blok yang dinonaktifkan
Blok yang dinonaktifkan tidak dapat ditarik dari toolbox. Blok dapat dinonaktifkan satu per satu menggunakan properti disabled
opsional.
JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type":"math_number"
},
{
"kind": "block",
"type": "math_arithmetic"
},
{
"kind": "block",
"type": "math_single",
"disabled": "true"
}
]
}
XML
<xml id="toolbox" style="display: none">
<block type="math_number"></block>
<block type="math_arithmetic"></block>
<block type="math_single" disabled="true"></block>
</xml>
Anda juga dapat menonaktifkan atau mengaktifkan pemblokiran secara terprogram menggunakan
setDisabledReason
.
Mengonfigurasi pemblokiran Anda
Anda dapat mengonfigurasi blok di toolbox dengan cara apa pun yang dapat Anda lakukan di ruang kerja. Misalnya, Anda dapat menetapkan nilai kolom, menghubungkan blok ke input nilai atau pernyataan, menambahkan komentar, serta menciutkan atau menonaktifkan blok. Hal ini dapat dilakukan karena kotak alat menggunakan kode yang sama untuk mengonfigurasi blok yang digunakan ruang kerja untuk melakukan serialisasi.
Artinya, konfigurasi blok mudah dibuat. Cukup muat blok Anda ke ruang kerja, konfigurasikan sesuai keinginan Anda, dan serialisasikan dengan menjalankan kode berikut di konsol.
JSON
console.log(Blockly.serialization.workspaces.save(Blockly.getMainWorkspace()));
XML
console.log(Blockly.Xml.workspaceToDom(Blockly.getMainWorkspace()));
Kemudian, Anda dapat menyalin kode konfigurasi dan menempelkannya ke toolbox Anda. Pastikan
untuk menghapus properti x
, y
, dan id
, yang diabaikan oleh toolbox.
Kolom variabel
Kolom variabel mungkin perlu ditentukan secara berbeda saat berada di toolbox dibandingkan saat diserialisasi.
Khususnya, saat kolom variabel biasanya diserialisasi ke JSON, kolom tersebut hanya berisi ID variabel yang diwakilinya, karena nama dan jenis variabel diserialisasi secara terpisah. Namun, kotak alat tidak berisi informasi tersebut, jadi informasi tersebut harus disertakan langsung di kolom variabel.
{
"kind": "flyoutToolbox",
"content": [
{
"kind": "block",
"type": "controls_for",
"fields": {
"VAR": {
"name": "index",
"type": "Number"
}
}
}
]
}
Blok bayangan
Blok bayangan adalah blok placeholder yang melakukan beberapa fungsi:
- Menunjukkan nilai default untuk blok induknya.
- Dengan blok ini, pengguna dapat mengetik nilai secara langsung tanpa perlu mengambil blok angka atau string.
- Tidak seperti blok biasa, blok ini akan diganti jika pengguna meletakkan blok di atasnya.
- Memberi tahu pengguna tentang jenis nilai yang diharapkan.
Untuk membuat blok bayangan, gunakan properti shadow
(JSON) atau tag <shadow>
(XML) dan bukan properti block
atau tag <block>
. Misalnya, berikut adalah
blok math_arithmetic
yang memiliki dua blok bayangan math_number
yang terhubung ke
blok tersebut:
Berikut adalah toolbox yang menggunakan blok bayangan ini:
JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type": "math_arithmetic",
"fields": {
"OP": "ADD"
},
"inputs": {
"A": {
"shadow": {
"type": "math_number",
"fields": {
"NUM": 1
}
}
},
"B": {
"shadow": {
"type": "math_number",
"fields": {
"NUM": 1
}
}
}
}
},
]
}
XML
<xml id="toolbox" style="display: none">
<block type="math_arithmetic">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</xml>