首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建自定义块并编写代码以在Android上生成Javascript代码

创建自定义块并编写代码以在Android上生成Javascript代码
EN

Stack Overflow用户
提问于 2017-02-16 02:48:48
回答 1查看 1.6K关注 0票数 0

我想要一个不同类别的块,叫做‘运动’,里面有两个块,叫做MoveForwardMoveBackward

在块核心库中的toolbox.xml文件中,添加了用于创建UI的XML代码。

代码语言:javascript
运行
AI代码解释
复制
<category name="Movement" colour="190">

        <block type="move_forward">
            <value name="TEXT">
                <shadow type="text">
                    <field name="TEXT">4</field>
                </shadow>
            </value>
        </block>

        <block type="move_backward">
            <value name="TEXT">
                <shadow type="text">
                    <field name="TEXT">4</field>
                </shadow>
            </value>
        </block>

</category>

现在,我需要在哪里添加JavaScript代码,以便在使用和运行这些bock时创建输出JavaScript代码?简单地说,为了使这些块生成JavaScript代码,我还需要做些什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-18 13:45:18

我假设您已经编写了块定义,并且这些块显示在工具箱UI中。在这种情况下,代码生成器就是您丢失的部分。在所有块平台上定义在JavaScript中的生成器。它们看起来是这样的:

代码语言:javascript
运行
AI代码解释
复制
// From the Android turtle demo.
// https://github.com/google/blockly-android/blob/master/blocklydemo/src/main/assets/turtle/generators.js
Blockly.JavaScript['turtle_move_internal'] = function(block) {
  // Generate JavaScript for moving forward or backwards.
  var value = block.getFieldValue('VALUE');
  return 'Turtle.' + block.getFieldValue('DIR') +
      '(' + value + ', \'block_id_' + block.id + '\');\n';
};

Blockly.JavaScript是块类型名称(在您的例子中是move_forwardmove_backward )到JavaScript生成器函数的映射。每个生成器函数都在JavaScript Block对象中传递。这是在Blockly的web版本中使用的相同的API。

写你自己的生成器文件。如果您使用的是Android,这应该放在您的资产文件夹中,以及AbstractBlocklyActivity.getGeneratorsJsPaths()返回的一个资产路径中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42271721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档