美文网首页
配置块 - 工具箱

配置块 - 工具箱

作者: mimimomo | 来源:发表于2018-02-07 10:06 被阅读58次

    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";
    }
    

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

    <toolbox>
       <block type = "controls_if" > </block>
       <block type="controls_whileUntil"></block > 
    </toolbox>
    

    此工具箱加载这些块:


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

    分类


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

    <toolbox>
      <category name="Control">
        <block type="controls_if"></block>
        <block type="controls_whileUntil"></block>
        <block type="controls_for"></block>
      </category>
      <category name="Logic">
        <block type="logic_compare"></block>
        <block type="logic_operation"></block>
        <block type="logic_boolean"></block>
      </category>
    </toolbox>
    

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

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

    <toolbox>
      <category name="Logic" colour="210">...</category>
      <category name="Loops" colour="120">...</category>
      <category name="Math" colour="230">...</category>
      <category name="Colour" colour="20">...</category>
    </toolbox>
    

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


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

    块组


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

    1. 一个简单的logic_boolean块:


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


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


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


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

    <toolbox>
      <block type="logic_boolean"></block>
    
      <block type="math_number">
        <field name="NUM">42</field>
      </block>
    
      <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>
    
      <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>
    </toolbox>
    

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

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

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

    更改工具箱


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

    相关文章

      网友评论

          本文标题:配置块 - 工具箱

          本文链接:https://www.haomeiwen.com/subject/vvmxmttx.html