Bei der Codegenerierung werden die Blöcke in einem Arbeitsbereich in einen ausführbaren Codestring umgewandelt.
Die Codegenerierung ist äußerst wichtig, da sie es Ihren Blöcken ermöglicht, etwas zu tun, z. B. arithmetische Ausdrücke zu berechnen, einen Charakter durch ein Labyrinth zu bewegen oder einen Onlineshop zu konfigurieren.
In Blockly werden Blöcke nicht direkt „ausgeführt“. Stattdessen generieren Sie Codestrings und führen diese dann aus.
Codegeneratoren
Zum Generieren von Code verwenden Sie eine Codegeneratorinstanz.
Dieses Code-Snippet zeigt, wie JavaScript-Code für die Blöcke in einem Arbeitsbereich generiert wird:
// javascriptGenerator is a code generator that makes JavaScript strings.
import {javascriptGenerator} from 'blockly/javascript';
const code = javascriptGenerator.workspaceToCode(myWorkspace);
Weitere Informationen zu den verschiedenen Codegeneratoren in Blockly und dazu, wie Sie darauf zugreifen, finden Sie unter Codegeneratoren für Programmiersprachen.
Block-Code-Generatoren
Jedem Block ist ein Blockcodegenerator zugeordnet, der definiert, welchen Code er generiert. Für jede Sprache, die Sie generieren möchten, muss ein Blockcode-Generator definiert werden.
In diesen Code-Snippets wird ein JavaScript-Block-Codegenerator für einen „Vorwärts springen“-Block definiert:
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`;
}
Weitere Informationen zum Definieren von Block-Codegeneratoren finden Sie unter Block-Codegeneratoren.
Ausführung
Nachdem Sie den Code generiert haben, müssen Sie herausfinden, wie Sie ihn ausführen. Die Entscheidung, wie sie ausgeführt werden soll, ist sehr anwendungsspezifisch und fällt nicht in den Zuständigkeitsbereich von Blockly.
Weitere Informationen zu Möglichkeiten zum Ausführen von Code finden Sie unter Code generieren und ausführen.