应用可以随时通过单个函数调用更改工具箱中可用的块:
workspace.updateToolbox(newTree);
与初始配置期间一样,newTree
可以是节点树、字符串表示法或 JSON 对象。唯一的限制是模式无法更改;也就是说,如果最初定义的工具箱中有类别,则新工具箱也必须有类别(尽管类别可能会发生变化)。同样,如果最初定义的工具箱没有任何类别,则新工具箱可能也没有任何类别。
您可以通过以下方式更新单个类别的内容:
var category = workspace.getToolbox().getToolboxItems()[0];
category.updateFlyoutContents(flyoutContents);
其中 flyoutContents
可以是使用 JSON 定义的块列表、节点树或字符串表示法。
请注意,目前更新 Toolbox 会导致界面发生一些细微重置:
- 在没有类别的工具箱中,用户更改的任何字段(例如下拉菜单)都会恢复为默认值。
下面是实时演示,展示了包含类别和版块组的树。