内部块是附加到值和语句输入的块。 各个区块码生成器需要处理其内部 块,以便将代码添加到正确的位置。
import {javascriptGenerator, Order} from 'blockly/javascript';
javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
// Generate innner block code.
const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
// Concatenate the string.
const code = `some code ${statement} ${value} some more code`;
// Return the code.
return code;
}
语句输入
可以通过以下方式生成附加到语句输入的内部块的代码:
statementToCode
。这会调用
语句块的块代码生成器和句柄
缩进代码。
const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
您只需为直接连接的内部代码块调用 statementToCode
进行微调。
输入值
可以通过以下方式生成附加到值输入的内部块的代码:
valueTocode
。这会调用
值块的块码生成器和句柄
在内部代码块周围添加圆括号'代码。
如需详细了解相关操作方法,请参阅括号文档 来控制括号。
const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
串联代码
获取内部代码块的代码字符串后,您可以用 代码字符串的正确位置。
const code = `some code ${statement} ${value} some more code`;
返回代码
不同类型的代码块需要以不同的 因此请查看其各自的网页以了解详情: