2016-09-15 70 views
0

我是新來的塊,我正在創建自定義塊的周圍。嵌套自定義塊塊成圈並生成代碼

我已經在blocks文件夾中創建了一個新文件(move.js),並且在那裏創建了一些自定義塊。他們都具有相似的結構,像下面

Blockly.Blocks['move_forward'] = { 
    init: function() { 
    this.appendDummyInput() 
     .appendField("Move Forward"); 
    this.appendDummyInput() 
     .appendField(new Blockly.FieldImage("http://iosites.org/robotino/front.png", 20, 20, "Forward")); 
    this.setInputsInline(true); 
    this.setPreviousStatement(true, null); 
    this.setNextStatement(true, null); 
    this.setColour(120); 
    this.setTooltip(''); 
    this.setHelpUrl('http://www.example.com/'); 
    } 
}; 

的一個然後,我創造了發電機/ JavaScript的文件夾中的新文件(move.js),並有我寫的很簡單的發電機塊(它們只返回一個信)。

Blockly.JavaScript['move_forward'] = function(block) { 
    return ['F;']; 
}; 

塊工作確定和返回文本,他們都應該在堆疊環路以外。但是,當我將它們嵌套在重複或一段時間循環內時,事情就會發生並且沒有任何回報。我已經做了一些測試,並且我認爲在重複生成器中爲我的自定義塊調用

Blockly.JavaScript.statementToCode 

時會發生此問題。

回答

0

很難說,但發電機通常返回要麼

return code + '\n'; 

return [code, Blockly.JavaScript.ORDER_ATOMIC]; 

基於塊(如果返回的東西或者只是做一些事情)。你正在生成(並返回)一個沒有訂單的數組(不僅僅是return 'F;';)......不知道,但也許是造成這個問題。