2017-02-16 62 views
0

Javascript代码我想不同类别的块称为“运动”有两个街区里面叫MoveForwardMoveBackward创建自定义模块,并编写代码来生成在Android

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

<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代码来创建输出JavaScript代码,当这些bocks被使用和运行时? 简而言之,我需要额外做些什么才能使这些块生成JavaScript代码?

回答

1

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

// 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()返回其中一条资产路径。