یک فیلد زاویه یک عدد را به عنوان مقدار و یک رشته را به عنوان متن خود ذخیره می کند. مقدار آن عددی بین 0 تا 360 است (این محدوده قابل تغییر است)، در حالی که متن آن می تواند هر رشته ای باشد که در ویرایشگر آن وارد شده است.
میدان زاویه
میدان زاویه با ویرایشگر
میدان زاویه فرو ریخته
ایجاد
JSON
{
"type": "example_angle",
"message0": "angle: %1",
"args0": [
{
"type": "field_angle",
"name": "FIELDNAME",
"angle": 90
}
]
}
جاوا اسکریپت
Blockly.Blocks['example_angle'] = {
init: function() {
this.appendDummyInput()
.appendField('angle:')
.appendField(new Blockly.FieldAngle(90), 'FIELDNAME');
}
};
سازنده زاویه یک مقدار اختیاری و یک اعتبارسنجی اختیاری می گیرد. اگر مقداری داده نشود یا مقدار داده شده به یک عدد داده نشود، از صفر به عنوان مقدار پیش فرض استفاده می شود.
سریال سازی
JSON
JSON برای یک میدان زاویه به این صورت است:
{
"fields": {
"FIELDNAME": 0
}
}
جایی که FIELDNAME
رشتهای است که به یک فیلد زاویه ارجاع میدهد و مقدار آن مقداری است که باید به فیلد اعمال شود. مقدار از همان قوانین ارزش سازنده پیروی می کند.
XML
XML برای یک میدان زاویه به این صورت است:
<field name="FIELDNAME">0</field>
جایی که مشخصه name
شامل رشته ای است که به یک فیلد زاویه ارجاع می دهد و متن داخلی مقداری است که باید به فیلد اعمال شود. مقدار متن داخلی از قوانینی مشابه با مقدار سازنده پیروی می کند.
سفارشی سازی
ضربه زدن
ویژگی Blockly.FieldAngle.ROUND
مقادیری را که انتخابگر زاویه هنگام استفاده از ماوس به آن "snaps" می شود، تغییر می دهد.
در اینجا یک مثال با مقدار ROUND
70 آورده شده است:
ویژگی ROUND
به طور پیش فرض 15 است. اگر می خواهید snapping را غیرفعال کنید، آن را روی 0 تنظیم کنید.
این یک ویژگی جهانی است، بنابراین وقتی تنظیم شود، تمام فیلدهای زاویه را تغییر می دهد.
جهت دار بودن
ویژگی Blockly.FieldAngle.CLOCKWISE
تغییر جهت می دهد که باعث افزایش مقدار زاویه می شود. تنظیم این مقدار روی true
باعث میشود با جابجایی انتخابگر در جهت عقربههای ساعت، زاویه افزایش یابد، با تنظیم آن بر روی false
، زاویه در خلاف جهت عقربههای ساعت حرکت میکند.
CLOCKWISE را روی true تنظیم کنید
CLOCKWISE روی نادرست تنظیم شده است
ویژگی CLOCKWISE
پیش فرض false
است، به این معنی که حرکت خلاف جهت عقربه های ساعت باعث افزایش زاویه می شود.
این یک ویژگی جهانی است، بنابراین وقتی تنظیم شود، تمام فیلدهای زاویه را تغییر می دهد.
موقعیت صفر
ویژگی Blockly.FieldAngle.OFFSET
جایی که 0 درجه قرار دارد را تعیین می کند. بهطور پیشفرض صفر درجه با محور x مثبت (به سمت راست) تراز است و سپس این ویژگی آن موقعیت را با تعدادی درجه «تغییر» میکند.
ویژگی OFFSET
به طور پیش فرض 0 است، به این معنی که صفر درجه با محور x مثبت تراز شده است.
این یک ویژگی جهانی است، بنابراین در صورت تنظیم، تمام فیلدهای زاویه را تغییر می دهد.
دامنه
ویژگی 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 نمایش می دهند.