ما هو تعريف المحتوى الذي يُحظر؟

تعريف الحظر هو كائن يحدّد حظرًا مخصّصًا. على سبيل المثال، يحدّد تعريف الحظر شكل الحظر ومظهره (النص والحقول والروابط واللون وما إلى ذلك)، بالإضافة إلى سلوكه (معالج الأحداث على مستوى الحظر وما إلى ذلك).

على سبيل المثال، يمكن تعريف هذا الحظر:

كتلة `string_length`

في JSON أو JavaScript على النحو التالي:

JSON

Blockly.common.defineBlocksWithJsonArray([{
  "type": "string_length",
  "message0": 'length of %1',
  "args0": [
    {
      "type": "input_value",
      "name": "VALUE",
      "check": "String"
    }
  ],
  "output": "Number",
  "colour": 160,
  "tooltip": "Returns number of letters in the provided text.",
  "helpUrl": "http://www.w3schools.com/jsref/jsref_length_string.asp"
}]);

تنشئ الدالة defineBlocksWithJsonArray تعريف حظر من كائن JSON.

JavaScript

Blockly.Blocks['string_length'] = {
   init: function() {
     this.appendValueInput('VALUE')
         .setCheck('String')
         .appendField('length of');
     this.setOutput(true, 'Number');
     this.setColour(160);
     this.setTooltip('Returns number of letters in the provided text.');
     this.setHelpUrl('http://www.w3schools.com/jsref/jsref_length_string.asp');
   }
};

عند استخدام JavaScript، يمكنك إنشاء تعريف الحظر مباشرةً.

آلية عمل تعريفات الحظر

تعريف الحظر هو مزيج يحتوي على خصائص ذات قيم دالة. عند إنشاء حظر جديد، يتم نسخ هذه الخصائص إلى كائن الحظر الذي تم إنشاؤه حديثًا. تستدعي Blockly هذه الدوال لتفعيل سلوك مخصّص.

بما أنّ دوال التعريف مضمّنة في كائن الحظر:

  • تشير الكلمة الرئيسية this في دوال التعريف إلى كائن الحظر. أي يمكن استخدامها للوصول إلى الطرق والخصائص العلنية في Block (أو BlockSvg) الفئة.

تحدّد Blockly عددًا قليلاً من الدوال التي يمكنك استخدامها لتخصيص الحظر. الأكثر شيوعًا من بينها هي الدالة init، التي تستدعيها Blockly لتهيئة حظر وتُستخدم لتحديد شكل الحظر ومظهره. للاطّلاع على قائمة كاملة، راجِع الخصائص ذات القيم الدالة في Block و BlockSvg الفئتَين. تشكّل هذه الخصائص فعليًا واجهة لتعريفات الحظر لتنفيذها، وكلّها اختيارية.

يمكن أن تتضمّن تعريفات الحظر أيضًا دوال مخصّصة، على الرغم من أنّ Blockly لن تستدعيها مباشرةً. بدلاً من ذلك، يمكن استخدامها لتنفيذ دوال أخرى. على سبيل المثال، يمكن لمعالج الأحداث على مستوى الحظر (الخاصية Block.onchange) تفويض أحداث مختلفة إلى دوال مخصّصة مختلفة.

كيفية إنشاء تعريفات الحظر

هناك عدة طرق مختلفة لإنشاء تعريفات الحظر:

  • استخدِم أدوات مطوّري برامج Blockly لتحديد شكل الحظر ومظهره. انسخ JSON أو JavaScript الذي تم إنشاؤه إلى الرمز وأضِف رمزًا مخصّصًا حسب الحاجة. لمزيد من المعلومات، راجِع أدوات مطوّري برامج Blockly.
  • ابحث عن حظر مشابه وانسخ تعريفه وعدِّله حسب الحاجة. لمزيد من المعلومات، راجِع تعديل التعريفات الحالية.
  • اكتب تعريف حظر يدويًا. لمزيد من المعلومات، راجِع JSON و JavaScript.