# 预设块
你可以在工具箱中预设块的状态。例如给字段设置默认值,或把两个块预先连接起来。你也可以创建阴影块,作为子块的默认占位。
# 示例
下面是一些预设块示例。
# 预设字段值的块
下面这个 math_number 块展示的字段值是 42,而不是默认值 0:

对应工具箱配置如下:
# 预连接块
下面这个 controls_for 块预先连接了三个 math_number 块:

对应工具箱配置如下:
# 禁用块
被禁用的块不能从工具箱拖出。可以通过可选的 disabled 属性按块禁用。

你也可以通过 setDisabledReason (opens new window) 在代码中禁用或启用块。
# 配置你的块
在工具箱里,你能做的块配置基本等同于在工作区里能做的配置。比如设置字段值、连接值输入或语句输入、添加注释、折叠块、禁用块等。这是因为工具箱配置块和工作区序列化使用的是同一套机制。
这也让创建块配置变得直接:先把块加载到工作区,按目标样式配置,再在控制台运行以下代码序列化。
然后把序列化结果复制到工具箱定义中。注意移除 x、y、id 属性,这些属性在工具箱里会被忽略。
# 变量字段
变量字段在工具箱里的写法,可能与普通序列化结果不同。
特别是 JSON 序列化时,变量字段通常只保存变量 ID,因为变量名和类型会在别处单独序列化。但工具箱里没有这部分信息,所以需要在变量字段中直接写入名称和类型。
{
"kind": "flyoutToolbox",
"content": [
{
"kind": "block",
"type": "controls_for",
"fields": {
"VAR": {
"name": "index",
"type": "Number"
}
}
}
]
}
# 阴影块
阴影块是占位块,主要作用包括:
- 表示父块的默认值。
- 允许用户直接输入值,而不必再拖一个数字块或文本块。
- 与普通块不同,用户拖入其他块时会替换阴影块。
- 提示用户该输入期望的数据类型。
注意
阴影块不能包含变量字段,也不能有非阴影子块。
创建阴影块时,JSON 使用 shadow 属性,XML 使用 <shadow> 标签,而不是 block 属性或 <block> 标签。
例如,下面这个 math_arithmetic 块有两个连接在值输入上的 math_number 阴影块:

对应工具箱配置如下: