gpt4 book ai didi

javascript - 将自定义 Blockly block 嵌套到循环中并生成代码

转载 作者:行者123 更新时间:2023-11-27 22:31:40 26 4
gpt4 key购买 nike

我是 blockly 新手,正在尝试创建自定义 block 。

我在 block 文件夹中创建了一个新文件 (move.js),并在其中创建了一些自定义 block 。它们都有相似的结构,如下所示

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),并在那里为 block 编写了非常简单的生成器(它们只返回一个字母)。

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

这些 block 工作正常,并返回堆叠在循环外部时应有的文本。但是当我将它们嵌套在重复或 while 循环中时,会发生一些事情并且没有任何返回。我做了一些测试,我认为问题发生在以下情况:

Blockly.JavaScript.statementToCode

在我的自定义 block 的重复生成器内调用。

最佳答案

很难说,但生成器通常会返回其中之一

return code + '\n';

return [code, Blockly.JavaScript.ORDER_ATOMIC];

基于 block (如果它返回某些内容或只是执行某些操作)。您正在生成(并返回)一个没有顺序的数组(而不仅仅是 return 'F;';)...不确定,但也许这就是导致问题的原因。

关于javascript - 将自定义 Blockly block 嵌套到循环中并生成代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39518722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com