配置块 - 工具箱


title: 配置块 - 工具箱

Configure Blockly - Toolbox

原文链接:https://developers.google.com/blockly/guides/configure/android/toolbox

工具箱是从用户可以创建新块的侧面菜单。工具箱的结构使用XML指定,可以是节点树或字符串表示形式。如果您不喜欢手动输入XML,我们建议您查看Blockly开发人员工具Blockly Developer Tools。使用它,您可以构造一个工具箱,并使用可视化界面自动生成其工具箱XML。此XML资产路径在构造时传递给BlocklyController。如果你的activity 继承了AbstractBlocklyActivity,这是使用getToolboxContentsXmlPath()返回的asset路径自动完成的:

@Override protected String getToolboxContentsXmlPath() {
    return "default/toolbox.xml";
}

这里是一个最小的例子,使用节点树:


    
    

此工具箱加载这些块:

配置块 - 工具箱_第1张图片

如果存在少量的块,则可以在没有任何类别的情况下显示它们(如在上面的最小示例中)。在这种简单模式下,所有可用的块都显示在工具箱中。

分类


工具箱中的块可以按类别组织。这里有两个类别('控制'和'逻辑'),每个包含三个块:


  
    
    
    
  
  
    
    
    
  

下面是生成的工具箱,点击“Logic”类别,以便可以看到弹出窗口中的三个逻辑块:

配置块 - 工具箱_第2张图片

可以使用可选的颜色属性为每个类别分配颜色。注意英国的拼写。颜色是定义色调的数字(0-360)。


  ...
  ...
  ...
  ...

此颜色在块后面的背景上显示为浅色。

配置块 - 工具箱_第3张图片

标签颜色正在等待处理(问题#296)

块组


XML可以包含定制块或块组。这里有四个块:

  1. 一个简单的logic_boolean块:


  2. 已修改为显示数字42而不是默认值0的math_number块:


  3. 一个控制块,有三个math_number块连接到它:


  4. 一个math_arithmetic块,它有两个math_number个阴影块连接到它:


下面是在工具箱中生成这四个块的代码:


  

  
    42
  

  
    
      
        1
      
    
    
      
        10
      
    
    
      
        1
      
    
  

  
    ADD
    
      
        1
      
    
    
      
        1
      
    
  

这些自定义块或组的XML与Blockly的XML保存格式相同。因此,为这些块构建XML的最简单的方法是使用Code应用程序构建块,然后切换到XML选项卡并复制结果。 x,y和id属性被工具箱忽略,可能会被删除。
阴影块是执行几个功能的占位符块:

  • 它们指示其父块的默认值。
  • 它们允许用户直接输入值,而不需要提取数字或字符串块。
  • 与常规块不同,如果用户在其上放置一个块,它们将被替换。
  • 它们通知用户期望的值的类型。

阴影块不能直接使用代码应用程序构建。相反,可以使用常规块,然后将XML中的更改为

更改工具箱


基于AbstractBlocklyActivity的应用程序可以通过调用this.reloadToolbox()随时更改工具箱中可用的块。这将触发对getToolboxContentsXmlPath()的新调用,其中应用程序可以返回一个新值。

你可能感兴趣的:(配置块 - 工具箱)