代碼生成器
大多數Blockly應用程序都要求將用戶程序翻譯成JavaScript、Python、PHP、Lua、Dart或其他語言。此操作在客戶端上被分塊執行。
生成代碼
第一步是包含所討論語言的生成器。主要包括以下幾種:
javascript_compressed.js
python_compressed.js
php_compressed.js
lua_compressed.js
dart_compressed.js
生成器類應該包含在blockly_compressed.js之後。例如,下面是包含的JavaScript生成器:
<script src="blockly_compressed.js"></script>
<script src="javascript_compressed.js"></script>
通過此調用,用戶的塊可以隨時從應用程序導出到代碼:
var code = Blockly.JavaScript.workspaceToCode(workspace);
將前面兩行中的JavaScript替換爲Python、PHP、Moon或Dart,以切換生成的語言。
實時生成
生成代碼是一個非常快速的操作,因此頻繁調用此函數不會造成任何傷害。一種常見的策略是通過向Blockly的change事件添加一個偵聽器來實時生成和顯示代碼:
function myUpdateFunction(event) {
var code = Blockly.JavaScript.workspaceToCode(workspace);
document.getElementById('textarea').value = code;
}
workspace.addChangeListener(myUpdateFunction);
有關詳細信息,請參見事件。