2016-09-15 118 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;';)......不知道,但也许是造成这个问题。