2

我怎样才能制作一个可以编译的块来包装它后面的所有块?

这是我要制作的块的示例:

在此处输入图像描述

我想编写创建输出的生成器:

console.log('1');
console.log('2');
(function () {
  console.log('3');
  console.log('4');
}());

我想到了两种可能的解决方案:

我的想法1

伪 C 块生成器应该做普通 C 块生成器所做的事情。

  1. 获取所有后续块的转译。
  2. 防止 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

不幸的是,我不知道如何做到这一点。


请有人能指出我正确的方向吗?

4

0 回答 0