إنشاء الرمز البرمجي وتشغيله

يمكن لتطبيقك إنشاء رمز في أي وقت. على سبيل المثال، قد يتم إنشاء الرمز عندما ينقر المستخدم النهائي على زر أو في كل مرة يُجري فيها المستخدم تغييرًا.

للاطّلاع على نظرة عامة حول إنشاء الرموز، يُرجى الاطّلاع على مقالة إنشاء الرموز.

استيراد أداة إنشاء رموز اللغات

لإنشاء رمز، تحتاج إلى أداة إنشاء رموز لغوية. يمكنك استيراد أدوات إنشاء الرموز البرمجية للغات باستخدام أيٍّ من الطرق التالية.

الوحدات

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

// Generate code for all the blocks in the workspace.
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);

Unpkg

يجب تضمين أداة إنشاء المحتوى بعد تضمين Blockly.

<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>
// Generate code for all the blocks in the workspace.
const jsCode = javascript.javascriptGenerator.workspaceToCode(workspace);
const pythonCode = python.pythonGenerator.workspaceToCode(workspace);
const phpCode = php.phpGenerator.workspaceToCode(workspace);
const luaCode = lua.luaGenerator.workspaceToCode(workspace);
const dartCode = dart.dartGenerator.workspaceToCode(workspace);

النصوص البرمجية المحلية

يجب تضمين أداة إنشاء المحتوى بعد تضمين Blockly.

<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>
// Generate code for all the blocks in the workspace.
const jsCode = javascript.javascriptGenerator.workspaceToCode(workspace);
const pythonCode = python.pythonGenerator.workspaceToCode(workspace);
const phpCode = php.phpGenerator.workspaceToCode(workspace);
const luaCode = lua.luaGenerator.workspaceToCode(workspace);
const dartCode = dart.dartGenerator.workspaceToCode(workspace);

إنشاء شفرة

لإنشاء رمز، استخدِم الدالة workspaceToCode في أداة الإنشاء.

const code = javascriptGenerator.workspaceToCode(workspace);

التحديثات المستمرة

تتيح لك التحديثات المستمرة عرض الرمز البرمجي أو تشغيله كلما أجرى المستخدم تغييرًا. إنّ إنشاء الرمز البرمجي عملية سريعة، لذا لا يؤثر ذلك كثيرًا في الأداء. ويتم ذلك باستخدام أداة معالجة الأحداث.

const supportedEvents = new Set([
  Blockly.Events.BLOCK_CHANGE,
  Blockly.Events.BLOCK_CREATE,
  Blockly.Events.BLOCK_DELETE,
  Blockly.Events.BLOCK_MOVE,
]);

function updateCode(event) {
  if (workspace.isDragging()) return; // Don't update while changes are happening.
  if (!supportedEvents.has(event.type)) return;

  const code = javascriptGenerator.workspaceToCode(workspace);
  document.getElementById('textarea').value = code;
}

workspace.addChangeListener(updateCode);

إضافة رمز تمهيدي أو رمز نص لاحق

بعد إنشاء الرمز، يمكنك اختياريًا تضمين رمز قبل البدء أو بعد نهاية الرمز الذي تم إنشاؤه.

let code = javascriptGenerator.workspaceToCode(workspace);
// Add a preamble and a postscript to the code.
const preamble = 'import {MyLibrary} from \'/path/to/my/library\';\n'
const postscript = 'MyLibrary.myKickoffFunction();\n';
code = preamble + code + postscript;

يُستخدَم رمز المقدّمة عادةً لتضمين تعريفات خارجية في بداية الرمز. يتم استخدام رمز نص ما بعد الطباعة عادةً لاستدعاء الدوالّ لبدء السلوك في نهاية الرمز.

إذا كان الرمز الذي تم إنشاؤه قابلاً للتنفيذ كما هو، لن يكون عليك تضمين مقدمات أو رسائل لاحقة.

تنفيذ الرمز البرمجي

بعد إنشاء الرمز، عليك معرفة كيفية تنفيذه. ويعتمد تحديد كيفية تنفيذها على التطبيق بشكل كبير، وهو خارج نطاق Blockly.

إذا كنت تريد تنفيذ رمز JavaScript، اطّلِع على مقالة إنشاء رمز JavaScript وتنفيذه. يتناول هذا القسم بعض الميزات الخاصة لأداة إنشاء رموز JavaScript، بالإضافة إلى JSInterpreter، الذي ينصح به فريق Blockly كطريقة ل ejecutant JavaScript بأمان.

وتتطلّب اللغات الأخرى استخدام أدوات أخرى.