程式碼產生是指將工作區上的區塊轉換為可執行的程式碼字串。
產生程式碼極為重要,因為區塊可以「執行」特定作業,例如評估算術運算式、透過迷宮移動角色,或設定網路商店!
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 範圍內。
如要進一步瞭解執行程式碼的方式,請參閱「執行程式碼」。