Trình tạo mã

Hầu hết các ứng dụng của Blockly đều yêu cầu dịch chương trình của người dùng sang ngôn ngữ lập trình. Hành động này do Blockly thực hiện ở phía máy khách.

Đang tạo mã

Bước đầu tiên là thêm trình tạo cho ngôn ngữ được đề cập. Bao gồm toàn bộ các trình tạo sau:

  • JavaScript
  • Python
  • 1.199
  • Lua
  • Dart

Bạn có thể nhập và sử dụng trình tạo bằng một trong các phương thức sau.

Mô-đun

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

Không có gói

Bạn phải bao gồm trình tạo sau khi thêm Khối.

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

Tập lệnh cục bộ

Bạn phải bao gồm trình tạo sau khi thêm Khối.

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

Tạo theo thời gian thực

Tạo mã là một hoạt động cực kỳ nhanh nên sẽ không gây ra vấn đề gì khi gọi hàm này thường xuyên. Một chiến lược phổ biến là tạo và hiển thị mã theo thời gian thực bằng cách thêm trình nghe vào sự kiện thay đổi của Blockly:

import {javascriptGenerator} from 'blockly/javascript';
function updateCode(event) {
  const code = javascriptGenerator.workspaceToCode(workspace);
  document.getElementById('textarea').value = code;
}
workspace.addChangeListener(updateCode);

Xem Sự kiện để biết thêm thông tin.