يخزن حقل الزاوية رقمًا كقيمته، والسلسلة كنص له. وتتألّف قيمته من رقم بين 0 و360 (يمكن تغيير هذا النطاق)، بينما يمكن أن يكون نصه عبارة عن أي سلسلة يتم إدخالها في أداة التعديل.
حقل الزاوية
حقل بزاوية مع محرِّر
حقل الزاوية مصغَّر
إنشاء الفيديوهات
JSON
{
"type": "example_angle",
"message0": "angle: %1",
"args0": [
{
"type": "field_angle",
"name": "FIELDNAME",
"angle": 90
}
]
}
JavaScript
Blockly.Blocks['example_angle'] = {
init: function() {
this.appendDummyInput()
.appendField('angle:')
.appendField(new Blockly.FieldAngle(90), 'FIELDNAME');
}
};
تستخدم الدالة الإنشائية للزاوية قيمة اختيارية وvalidator اختيارية. يتم استخدام الصفر كقيمة افتراضية إذا لم يتم إعطاء أي قيمة أو لم يتم تحويل القيمة المقدمة إلى رقم.
التسلسل
JSON
يبدو تنسيق JSON لحقل الزاوية على النحو التالي:
{
"fields": {
"FIELDNAME": 0
}
}
حيث تكون FIELDNAME
سلسلة تشير إلى حقل زاوية، والقيمة هي القيمة المطلوب تطبيقها على الحقل. تتبع القيمة نفس القواعد مثل قيمة الدالة الإنشائية.
XML
يبدو نموذج XML لحقل الزاوية على النحو التالي:
<field name="FIELDNAME">0</field>
تتضمّن السمة name
سلسلة تشير إلى حقل زاوية، ويكون النص الداخلي هو القيمة المطلوب تطبيقها على الحقل. تتبع قيمة النص الداخلية نفس القواعد
مثل قيمة الدالة الإنشائية.
التخصيص
الانطباق
تغيّر السمة Blockly.FieldAngle.ROUND
القيم التي "ينطبق" عليها "منتقي الزوايا" عند استخدام الماوس.
في ما يلي مثال بقيمة ROUND
تساوي 70:
القيمة التلقائية للسمة ROUND
هي 15. اضبطه على 0 إذا كنت تريد
إيقاف الالتقاط.
هذه السمة موقع عام، لذا سيتم تعديل جميع حقول الزاوية عند ضبطها.
اتجاهات الطريق
تغير السمة Blockly.FieldAngle.CLOCKWISE
الاتجاه الذي يؤدي
إلى زيادة قيمة الزاوية. ويؤدي ضبط هذه القيمة على true
إلى زيادة الزاوية عند تحريك أداة الاختيار في اتجاه عقارب الساعة، وضبطها على false
، ما يؤدي إلى زيادة الزاوية عند تحريكها عكس اتجاه عقارب الساعة.
تم ضبط CLOCKWISE على "صحيح"
تم ضبط CLOCKWISE على خطأ
القيمة التلقائية للخاصية CLOCKWISE
هي false
، ما يعني أنّ الحركة عكس اتجاه عقارب الساعة ستؤدّي إلى زيادة الزاوية.
هذه السمة موقع عام، لذا سيتم تعديل جميع حقول الزاوية عند ضبطها.
الموضع صفر
تحدّد السمة Blockly.FieldAngle.OFFSET
الموضع 0 درجة. وتتم محاذاة صفر درجات تلقائيًا مع المحور س الموجبة (باتجاه
اليمين)، ومن ثم "تستبدل" هذه الخاصية ذلك الموضع بعدد من
الدرجات.
القيمة التلقائية للسمة OFFSET
هي 0، ما يعني أنّه تتم محاذاة صفر درجات مع المحور س الإيجابي.
هذا موقع عام، لذا سيتم تعديل جميع حقول الزاوية عند ضبطها.
النطاق
تحدّد السمة Blockly.FieldAngle.WRAP
نطاق القيم.
نطاق القيم يساوي (-360 + WRAP, WRAP)
. وهذا يعني أن القيمة WRAP
التي تبلغ 360 ستمنح النطاق (0, 359.9)
وقيمة WRAP
التي تبلغ 180 ستمنح النطاق (-179.9, 180)
.
القيمة التلقائية للسمة WRAP
هي 360، وهذا يعني أنّ نطاق الحقل هو (0,
359.9)
.
هذا موقع عام، لذا سيتم تعديل جميع حقول الزاوية عند ضبطها.
حجم أداة اختيار الزاوية
تُغيّر السمة Blockly.FieldAngle.HALF
حجم أداة اختيار الزاوية. تحدد هذه القيمة نصف قطر الدائرة الخارجية بالبكسل.
القيمة التلقائية للسمة HALF
هي 50.
هذا موقع عام، لذا سيتم تعديل جميع حقول الزاوية عند ضبطها.
الأوضاع الشائعة
يمكن استخدام اتجاه و موضع الصفر معًا لإنشاء بعض المجموعات الممتعة. إليك أمران شائعان:
منقلة
0 درجة هي اليمين، و90 درجة أعلى.
Blockly.FieldAngle.CLOCKWISE = false;
Blockly.FieldAngle.OFFSET = 0;
بوصلة
ارتفعت درجة 0 درجة إلى أعلى، و90 درجة صحيحة.
Blockly.FieldAngle.CLOCKWISE = true;
Blockly.FieldAngle.OFFSET = 90;
إنشاء مدقق زاوية
قيمة حقل الزاوية هي رقم، لذلك يجب أن تقبل أي أداة تحقّق من صحة رقم وتعرض رقمًا أو null
أو undefined
.
في ما يلي مثال على أداة التحقق التي تفرض أن تكون القيمة مضاعفة لـ 30:
function(newValue) {
return Math.round(newValue / 30) * 30;
}
لاحظ كيف لا تزال خاصية [ROUND](#snapping)
في حقل الزاوية مضبوطة على 15، وبالتالي فإن العناصر الرسومية للحقل تعرض مضاعفات 15، بدلاً من 30.