程式碼產生

程式碼產生是指將工作區上的區塊轉換為可執行的程式碼字串。

產生程式碼極為重要,因為區塊可以「執行」特定作業,例如評估算術運算式、透過迷宮移動角色,或設定網路商店!

Blockly 不會直接「執行」區塊,而是產生並執行程式碼字串。

程式碼產生器

如要產生程式碼,請使用程式碼產生器執行個體。

下列程式碼片段說明如何為工作區中的區塊產生 JavaScript 程式碼:

// javascriptGenerator is a code generator that makes JavaScript strings.
import {javascriptGenerator} from 'blockly/javascript';

const code = javascriptGenerator.workspaceToCode(myWorkspace);

如要進一步瞭解 Blockly 提供的各種程式碼產生器及存取方法,請參閱「程式碼產生器總覽」。

區塊程式碼產生器

每個區塊都有相關聯的區塊程式碼產生器,用於定義產生的程式碼。您必須針對要產生的每種語言定義區塊程式碼產生器。

下列程式碼片段定義了「Moveforward」區塊的 JavaScript 區塊程式碼產生器:

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  const steps = block.getFieldValue('FIELD_NAME');
  // moveForward is a function you would have to define yourself and provide
  // within your execution context.
  return `moveForward(${steps});\n`;
}

如要進一步瞭解如何定義區塊程式碼產生器,請參閱「區塊程式碼產生器」。

執行

產生程式碼後,您需要決定如何執行程式碼。決定如何執行的方式只有特定應用程式,而且不在 Blockly 範圍內。

如要進一步瞭解執行程式碼的方式,請參閱「執行程式碼」。