الإعدادات المُعدّة مسبقًا

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

أمثلة

في ما يلي بعض الأمثلة على الحظر المسبق.

الحظر باستخدام قيمة حقل محدّدة مسبقًا

في ما يلي math_number كتلة يعرض حقلها الرقم 42 بدلاً من القيمة التلقائية 0:

كتلة أرقام تم ضبط قيمتها مسبقًا على 42.

في ما يلي مجموعة أدوات تضبط هذا الحقل:

JSON

{
 "kind": "flyoutToolbox",
 "contents": [
   {
     "kind": "block",
     "type": "math_number",
     "fields": {
       "NUM": 42
     }
   },
 ]
}

XML

<xml id="toolbox" style="display: none">
 <block type="math_number">
   <field name="NUM">42</field>
 </block>
</xml>

المربّعات المتصلة مُسبَقًا

في ما يلي controls_for يحتوي على ثلاثة math_number مرتبطة به:

كتلة &quot;العدّ مع i من قيمة إلى قيمة حسب القيمة&quot; يتم ربط مدخلات القيم الثلاثة بمربّعات أرقام تحمل القيم 1 و10 و1.

إليك صندوق أدوات يربط هذه اللبنات مسبقًا:

JSON

{
 "kind": "flyoutToolbox",
 "contents": [
   {
     "kind": "block",
     "type": "controls_for",
     "inputs": {
       "FROM": {
         "block": {
           "type": "math_number",
           "fields": {
             "NUM": 1
           }
         }
       },
       "TO": {
         "block": {
           "type": "math_number",
           "fields": {
             "NUM": 10
           }
         }
       },
       "BY": {
         "block": {
           "type": "math_number",
           "fields": {
             "NUM": 1
           }
         }
       },
     }
   },
 ]
}

XML

<xml id="toolbox" style="display: none">
 <block type="controls_for">
   <value name="FROM">
     <block type="math_number">
       <field name="NUM">1</field>
     </block>
   </value>
   <value name="TO">
     <block type="math_number">
       <field name="NUM">10</field>
     </block>
   </value>
   <value name="BY">
     <block type="math_number">
       <field name="NUM">1</field>
     </block>
   </value>
 </block>
</xml>

المربّعات غير المفعّلة

لا يمكن سحب الحِزم غير المفعّلة من صندوق الأدوات. يمكن إيقاف الحظر بشكل فردي باستخدام السمة الاختيارية disabled.

قائمة منبثقة تتضمّن ثلاث مربّعات تم إيقاف الحظر الثالث وهو يظهر باللون الرمادي.

JSON

{
 "kind": "flyoutToolbox",
 "contents": [
   {
     "kind": "block",
     "type":"math_number"
   },
   {
     "kind": "block",
     "type": "math_arithmetic"
   },
   {
     "kind": "block",
     "type": "math_single",
     "disabled": "true"
   }
 ]
}

XML

<xml id="toolbox" style="display: none">
 <block type="math_number"></block>
 <block type="math_arithmetic"></block>
 <block type="math_single" disabled="true"></block>
</xml>

يمكنك أيضًا إيقاف الحظر أو تفعيله آليًا باستخدام setDisabledReason.

ضبط عمليات الحظر

يمكنك ضبط أحد البلوكات في صندوق الأدوات بأي طريقة يمكنك ضبطه بها في مساحة العمل. على سبيل المثال، يمكنك ضبط قيم الحقول وربط اللبنات بمدخلات القيمة أو العبارة وإضافة تعليقات وتصغير اللبنات أو إيقافها. وهذا ممكن لأنّ صناديق الأدوات تستخدم الرمز نفسه لضبط الحظر الذي تستخدمه مساحات العمل لتسلسله.

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

JSON

console.log(Blockly.serialization.workspaces.save(Blockly.getMainWorkspace()));

XML

console.log(Blockly.Xml.workspaceToDom(Blockly.getMainWorkspace()));

يمكنك بعد ذلك نسخ رمز الإعداد ولصقه في صندوق الأدوات. احرص على إزالة السمات x وy وid التي تتجاهلها مجموعة الأدوات.

الحقول المتغيّرة

قد تحتاج الحقول المتغيرة إلى تحديدها بشكل مختلف عندما تكون في مجموعة أدوات مقارنةً بحالتها عند تسلسلها.

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

{
  "kind": "flyoutToolbox",
  "content": [
    {
      "kind": "block",
      "type": "controls_for",
      "fields": {
        "VAR": {
          "name": "index",
          "type": "Number"
        }
      }
    }
  ]
}

مربّعات الظل

الكتل الظلية هي كتل عناصر نائبة تؤدي عدة وظائف:

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

لإنشاء كتلة ظل، استخدِم السمة shadow (JSON) أو العلامة <shadow> (XML) بدلاً من السمة block أو العلامة <block>. على سبيل المثال، في ما يلي كتلة math_arithmetic تتضمّن كتلتَي math_number ظل متصلتَين بها:

كتلة `math_arithmetic` تتضمّن مدخلَين للقيمة مفصولَين بقائمة منسدلة خاصة بعامل التشغيل تم فيها اختيار عامل الجمع يحتوي كل إدخال قيمة على
مربّع رقم ظلّي، وهو مربّع رمادي اللون يشير إلى أنّه يمكن استبداله
بمربّع آخر.

إليك مجموعة أدوات تستخدم عناصر التحكّم هذه:

JSON

{
 "kind": "flyoutToolbox",
 "contents": [
   {
     "kind": "block",
     "type": "math_arithmetic",
     "fields": {
       "OP": "ADD"
     },
     "inputs": {
       "A": {
         "shadow": {
           "type": "math_number",
           "fields": {
             "NUM": 1
           }
         }
       },
       "B": {
         "shadow": {
           "type": "math_number",
           "fields": {
             "NUM": 1
           }
         }
       }
     }
   },
 ]
}

XML

<xml id="toolbox" style="display: none">
 <block type="math_arithmetic">
   <field name="OP">ADD</field>
   <value name="A">
     <shadow type="math_number">
       <field name="NUM">1</field>
     </shadow>
   </value>
   <value name="B">
     <shadow type="math_number">
       <field name="NUM">1</field>
     </shadow>
   </value>
 </block>
</xml>