Bei den meisten Anwendungen von Blockly muss das Programm des Nutzers in eine Programmiersprache übersetzt werden. Diese Aktion wird clientseitig von Blockly ausgeführt.
Code wird generiert
Fügen Sie zuerst den Generator für die betreffende Sprache hinzu. Blockly enthält die folgenden Generatoren:
- JavaScript
- Python
- PHP
- Lua
- Dart
Sie können die Generatoren mit einer der folgenden Methoden importieren und verwenden.
Module
import {javascriptGenerator} from 'blockly/javascript';
import {pythonGenerator} from 'blockly/python';
import {phpGenerator} from 'blockly/php';
import {luaGenerator} from 'blockly/lua';
import {dartGenerator} from 'blockly/dart';
const jsCode = javascriptGenerator.workspaceToCode(workspace);
const pythonCode = pythonGenerator.workspaceToCode(workspace);
const phpCode = phpGenerator.workspaceToCode(workspace);
const luaCode = luaGenerator.workspaceToCode(workspace);
const dartCode = dartGenerator.workspaceToCode(workspace);
Entpacken
Nach der Einbindung von Blockly musst du den Generator hinzufügen.
<script src="https://unpkg.com/blockly"></script>
<script src="https://unpkg.com/blockly/javascript_compressed"></script>
<script src="https://unpkg.com/blockly/python_compressed"></script>
<script src="https://unpkg.com/blockly/php_compressed"></script>
<script src="https://unpkg.com/blockly/lua_compressed"></script>
<script src="https://unpkg.com/blockly/dart_compressed"></script>
const jsCode = javascript.workspaceToCode(workspace);
const pythonCode = python.workspaceToCode(workspace);
const phpCode = php.workspaceToCode(workspace);
const luaCode = luna.workspaceToCode(workspace);
const dartCode = dart.workspaceToCode(workspace);
Lokale Skripts
Nach der Einbindung von Blockly musst du den Generator hinzufügen.
<script src="blockly_compressed.js"></script>
<script src="javascript_compressed.js"></script>
<script src="python_compressed.js"></script>
<script src="php_compressed.js"></script>
<script src="lua_compressed.js"></script>
<script src="dart_compressed.js"></script>
const jsCode = javascript.workspaceToCode(workspace);
const pythonCode = python.workspaceToCode(workspace);
const phpCode = php.workspaceToCode(workspace);
const luaCode = lua.workspaceToCode(workspace);
const dartCode = dart.workspaceToCode(workspace);
Echtzeiterstellung
Das Generieren von Code ist ein extrem schneller Vorgang, sodass ein häufiges Aufrufen dieser Funktion nicht schadet. Eine gängige Strategie besteht darin, Code in Echtzeit zu generieren und anzuzeigen, indem Sie dem Änderungsereignis von Blockly einen Listener hinzufügen:
import {javascriptGenerator} from 'blockly/javascript';
function updateCode(event) {
const code = javascriptGenerator.workspaceToCode(workspace);
document.getElementById('textarea').value = code;
}
workspace.addChangeListener(updateCode);
Weitere Informationen finden Sie unter Ereignisse.