2017-02-16 67 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()返回其中一條資產路徑。

相關問題