程式碼產生是指將工作區中的區塊轉換為可執行的程式碼字串的程序。
程式碼產生功能非常重要,因為它可讓區塊實際執行操作,例如評估算術運算式、在迷宮中移動角色,或設定網路商店!
Blockly 不會直接「執行」區塊。而是產生程式碼字串,然後執行這些字串。
程式碼產生器
如要產生程式碼,請使用程式碼產生器例項。
下列程式碼片段說明如何為工作區中的區塊產生 JavaScript 程式碼:
// javascriptGenerator is a code generator that makes JavaScript strings.
import {javascriptGenerator} from 'blockly/javascript';
const code = javascriptGenerator.workspaceToCode(myWorkspace);
如要進一步瞭解 Blockly 提供的不同程式碼產生器,以及如何存取這些產生器,請參閱「語言程式碼產生器」。
區塊程式碼產生器
每個區塊都有相關聯的區塊程式碼產生器,可定義產生的程式碼。您必須為每種要產生的語言定義區塊程式碼產生器。
以下程式碼片段會定義「前進」區塊的 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 的範圍。
如要進一步瞭解執行程式碼的方式,請參閱「產生及執行程式碼」。