Bir araç kutusundaki blokların durumunu yapılandırabilirsiniz (önceden ayarlayabilirsiniz). Örneğin, bir alanı varsayılan değere ayarlayabilir veya iki bloğu birbirine bağlayabilirsiniz. Ayrıca, çocuk blokları için varsayılan olarak kullanılan gölge bloklar da oluşturabilirsiniz.
Örnekler
Aşağıda, hazır bloklara ilişkin bazı örnekler verilmiştir.
Hazır ayar alan değeriyle engelleme
İşte math_number
alanı varsayılan 0 yerine 42 sayısını gösteren bir blok:
Bu alanı ayarlayan bir araç kutusu:
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>
Önceden bağlanmış bloklar
Aşağıda, kendisine bağlı üç math_number
bloğu olan bir controls_for
bloğu verilmiştir:
Bu blokları önceden bağlayan bir araç kutusu:
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>
Devre dışı bırakılan bloklar
Devre dışı bırakılan bloklar araç kutusundan sürüklenemez. Bloklar, isteğe bağlı disabled
özelliği kullanılarak ayrı ayrı devre dışı bırakılabilir.
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>
Ayrıca, setDisabledReason
kullanarak bir bloğu programatik olarak devre dışı bırakabilir veya etkinleştirebilirsiniz.
Engellemelerinizi yapılandırma
Bir araç kutusundaki blokları, çalışma alanında yapılandırabileceğiniz şekilde yapılandırabilirsiniz. Örneğin, alan değerlerini ayarlayabilir, blokları değer veya ifade girişlerine bağlayabilir, yorum ekleyebilir ve blokları daraltabilir ya da devre dışı bırakabilirsiniz. Bu, araç kutuları, çalışma alanlarının blokları serileştirmek için kullandığı kodu kullandığından mümkündür.
Bu, blok yapılandırması oluşturmanın da kolay olduğu anlamına gelir. Bloğunuzu bir çalışma alanına yükleyin, istediğiniz gibi yapılandırın ve konsolda aşağıdaki kodu çalıştırarak serileştirin.
JSON
console.log(Blockly.serialization.workspaces.save(Blockly.getMainWorkspace()));
XML
console.log(Blockly.Xml.workspaceToDom(Blockly.getMainWorkspace()));
Ardından yapılandırma kodunu kopyalayıp araç kutunuza yapıştırabilirsiniz. Araç kutusu tarafından yoksayılan x
, y
ve id
özelliklerini kaldırdığınızdan emin olun.
Değişken alanlar
Değişken alanlar, araç kutusunda olduklarında seri hale getirildiklerinden farklı şekilde belirtilmesi gerekebilir.
Özellikle, değişken alanlar normalde JSON'a serileştirildiğinde yalnızca temsil ettikleri değişkenin kimliğini içerir. Bunun nedeni, değişkenin adının ve türünün ayrı olarak serileştirilmesidir. Ancak araç kutularında bu bilgiler yer almadığından doğrudan değişken alanına eklenmesi gerekir.
{
"kind": "flyoutToolbox",
"content": [
{
"kind": "block",
"type": "controls_for",
"fields": {
"VAR": {
"name": "index",
"type": "Number"
}
}
}
]
}
Gölge blokları
Gölge bloklar, çeşitli işlevleri yerine getiren yer tutucu bloklardır:
- Üst bloklarının varsayılan değerlerini gösterirler.
- Kullanıcıların bir sayı veya dize bloğu getirmesine gerek kalmadan doğrudan değer yazmasına olanak tanır.
- Normal bir engellemenin aksine, kullanıcı bunların üzerine bir engelleme bırakırsa değiştirilirler.
- Kullanıcıya beklenen değer türü hakkında bilgi verir.
Gölge bloğu oluşturmak için block
özelliği veya <block>
etiketi yerine shadow
özelliğini (JSON) ya da <shadow>
etiketini (XML) kullanın. Örneğin, burada kendisine bağlı iki math_number
gölge bloğu olan bir math_arithmetic
bloğu gösterilmektedir:
Aşağıda, bu gölge blokları kullanan bir araç kutusu verilmiştir:
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>