修改工具箱

应用可以随时通过单个函数调用更改工具箱中可用的块:

workspace.updateToolbox(newTree);

与初始配置期间一样,newTree 可以是节点树、字符串表示法或 JSON 对象。唯一的限制是模式无法更改;也就是说,如果最初定义的工具箱中有类别,则新工具箱也必须有类别(尽管类别可能会发生变化)。同样,如果最初定义的工具箱没有任何类别,则新工具箱可能也没有任何类别。

您可以通过以下方式更新单个类别的内容:

var category = workspace.getToolbox().getToolboxItems()[0];
category.updateFlyoutContents(flyoutContents);

其中 flyoutContents 可以是使用 JSON 定义的块列表、节点树或字符串表示法。

请注意,目前更新 Toolbox 会导致界面发生一些细微重置:

  • 在没有类别的工具箱中,用户更改的任何字段(例如下拉菜单)都会恢复为默认值。

下面是实时演示,展示了包含类别和版块组的树。