Javascript 将自定义块嵌套到循环中并生成代码
我是blockly的新手,我正在玩arround创建自定义块 我在blocks文件夹中创建了一个新文件(move.js),并在那里创建了一些自定义块。它们都有类似的结构,如下所示Javascript 将自定义块嵌套到循环中并生成代码,javascript,blockly,Javascript,Blockly,我是blockly的新手,我正在玩arround创建自定义块 我在blocks文件夹中创建了一个新文件(move.js),并在那里创建了一些自定义块。它们都有类似的结构,如下所示 Blockly.Blocks['move_forward'] = { init: function() { this.appendDummyInput() .appendField("Move Forward"); this.appendDummyInput() .a
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/');
}
};
然后我在generators/javascript文件夹中创建了一个新文件(move.js),在那里我为块编写了非常简单的生成器(它们只返回一个字母)
块工作正常,并返回堆叠在循环外部时应该返回的文本。但当我把它们嵌套在一个repeat或while循环中时,发生了一些事情,并且没有任何回报。我做了一些测试,我认为当
Blockly.JavaScript.statementToCode
在自定义块的重复生成器中调用。很难说,但生成器通常返回
return code + '\n';
或
基于块(如果它返回某些内容或只是执行某些操作)。您正在生成(并返回)一个没有顺序的数组(而不仅仅是
返回'F;;
)。。。不确定,但可能是这导致了问题。是的,去掉方括号对我很有效。在此之前,我的代码为单个块生成ok,但是当堆叠时,例如在循环中,我会在末尾得到一行逗号和一个语法错误。
return code + '\n';
return [code, Blockly.JavaScript.ORDER_ATOMIC];