زمینه های زاویه ای

یک فیلد زاویه یک عدد را به عنوان مقدار و یک رشته را به عنوان متن خود ذخیره می کند. مقدار آن عددی بین 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 70

ویژگی ROUND به طور پیش فرض 15 است. اگر می خواهید snapping را غیرفعال کنید، آن را روی 0 تنظیم کنید.

این یک ویژگی جهانی است، بنابراین وقتی تنظیم شود، تمام فیلدهای زاویه را تغییر می دهد.

جهت دار بودن

ویژگی Blockly.FieldAngle.CLOCKWISE تغییر جهت می دهد که باعث افزایش مقدار زاویه می شود. تنظیم این مقدار روی true باعث می‌شود با جابجایی انتخابگر در جهت عقربه‌های ساعت، زاویه افزایش یابد، با تنظیم آن بر روی false ، زاویه در خلاف جهت عقربه‌های ساعت حرکت می‌کند.

CLOCKWISE را روی true تنظیم کنید

فیلد زاویه با CLOCKWISE روی درست تنظیم شده است

CLOCKWISE روی نادرست تنظیم شده است

فیلد زاویه با 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) را به دست می دهد.

جمع کننده زاویه با ارزش بسته بندی 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 نمایش می دهند.