3.5 代码编辑器

优质
小牛编辑
211浏览
2023-12-01

Blockly的大多数应用程序都可以将用户程序翻译成JavaScript,Python,PHP,Lua,Dart或其他语言。此操作由Blockly在客户端执行。

生成代码

第一步是导入相关语言的生成器。 Blockly包括以下生成器:

  • 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);

在前面两行中用Python,PHP,Lua或Dart替换JavaScript以切换生成的语言。

实时生成

生成代码是一种非常快速的操作,因此频繁调用此函数没有任何害处。一个常见的策略是通过向Blockly的change事件添加一个监听器来实时生成和显示代码:

function myUpdateFunction(event) {
  var code = Blockly.JavaScript.workspaceToCode(workspace);
  document.getElementById('textarea').value = code;
}
workspace.addChangeListener(myUpdateFunction);

有关更多信息,请参阅《3.8 事件》