我怎样才能制作一个可以编译的块来包装它后面的所有块?
这是我要制作的块的示例:
我想编写创建输出的生成器:
console.log('1');
console.log('2');
(function () {
console.log('3');
console.log('4');
}());
我想到了两种可能的解决方案:
我的想法1
伪 C 块生成器应该做普通 C 块生成器所做的事情。
- 获取所有后续块的转译。
- 防止 Blockly 自动转换以下块本身。
我已经看过 1 使用block.nextConnection.targetBlock()
and Blockly.JavaScript.blockToCode
。这样循环不方便,第二点我也没想好怎么解决。
第二点是因为我不想要像这样的输出
console.log('1');
console.log('2');
(function () {
console.log('3');
console.log('4');
}());
console.log('3');
console.log('4');
我的想法2
为伪 C 块创建自定义样式。它确实有一个 input_statement 参数,但 input_statement 对用户是不可见的,而是附加到伪 C 块底部的任何块实际上都附加到该 input_statement
不幸的是,我不知道如何做到这一点。
请有人能指出我正确的方向吗?