# 顶层连接

块有三种可选的顶层连接:

  • nextStatement
  • previousStatement
  • output

# 语句连接

用户可以通过 nextStatementpreviousStatement 把块纵向堆叠成语句序列。
在 Blockly 的默认布局中,这两个连接分别位于块底部和顶部。

previousStatement 的块不能再有 output
通常把没有 output 的块称为语句块,语句块一般同时具有 previousStatementnextStatement

nextStatementpreviousStatement 也支持类型约束,具体可见连接检查

# 下一个连接

下一个连接会在块底部生成一个连接点,允许其它语句块接在下方。
如果一个块只有下一个连接、没有上一个连接,这类块通常表示事件入口,也可以配置为带起始帽,见应用设计页

下一个连接示意

# JSON

未指定类型:

{
  ...,
  "nextStatement": null,
}

指定类型(较少使用):

{
  "nextStatement": "Action",
  ...
}

# JavaScript

未指定类型:

this.setNextStatement(true); // false 表示不设置下一个连接(默认)

指定类型(较少使用):

this.setNextStatement(true, 'Action');

# 上一个连接

上一个连接会在块顶部生成一个凹槽,使当前块可作为语句栈中的一环。
带上一个连接的块不能再有输出连接。

上一个连接示意

# JSON

未指定类型:

{
  ...,
  "previousStatement": null,
}

指定类型(较少使用):

{
  "previousStatement": "Action",
  ...
}

# JavaScript

未指定类型:

this.setPreviousStatement(true); // false 表示不设置上一个连接(默认)

指定类型(较少使用):

this.setPreviousStatement(true, 'Action');

# 输出连接

一个块可以有一个输出连接,通常位于前缘,形状类似拼图凸起。
输出连接用于接到值输入;带输出连接的块通常称为值块。

输出连接示意

# JSON

未指定类型:

{
  // ...,
  "output": null,
}

指定类型:

{
  // ...,
  "output": "Number",
}

# JavaScript

未指定类型:

init: function() {
  // ...
  this.setOutput(true);
}

指定类型:

init: function() {
  // ...
  this.setOutput(true, 'Number');
}

带输出连接的块不能同时拥有上一个连接。