ऐंगल फ़ील्ड

ऐंगल फ़ील्ड में वैल्यू के तौर पर कोई संख्या और टेक्स्ट के तौर पर स्ट्रिंग सेव की जाती है. इसका मान 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

ऐंगल फ़ील्ड के लिए एक्सएमएल ऐसा दिखता है:

<field name="FIELDNAME">0</field>

जहां name एट्रिब्यूट में एंगल फ़ील्ड के बारे में बताने वाली स्ट्रिंग होती है और अंदरूनी टेक्स्ट, फ़ील्ड पर लागू की जाने वाली वैल्यू होता है. इनर टेक्स्ट वैल्यू, कंस्ट्रक्टर की वैल्यू वाले नियमों के हिसाब से होती है.

पसंद के मुताबिक बनाएं

स्नैप करना

Blockly.FieldAngle.ROUND प्रॉपर्टी से यह तय होता है कि माउस का इस्तेमाल करने पर, ऐंगल पिकर "स्नैप" की वैल्यू कैसे तय करेगा.

यहां ROUND की 70 वैल्यू वाला एक उदाहरण दिया गया है:

70 के राउंड मान वाला कोण फ़ील्ड

ROUND प्रॉपर्टी डिफ़ॉल्ट रूप से 15 होती है. अगर आप स्नैपिंग को बंद करना चाहते हैं, तो इसे 0 पर सेट करें.

यह एक ग्लोबल प्रॉपर्टी है. इसलिए, सेट किए जाने पर यह सभी ऐंगल फ़ील्ड में बदलाव करेगी.

दिशा

Blockly.FieldAngle.CLOCKWISE प्रॉपर्टी से यह बदल जाता है कि किस दिशा से कोण की वैल्यू बढ़ती है. इस वैल्यू को true पर सेट करने से कोण में बढ़ोतरी होती है. ऐसा इसलिए, क्योंकि सिलेक्टर को घड़ी की सुई की दिशा में घुमाते समय, इसे false पर सेट करने से कोण बढ़ता है.

CलॉकWISE को 'सही है' पर सेट किया गया

CLOCKWISE वाला कोण फ़ील्ड सही पर सेट है

CलॉकWISE को 'गलत' पर सेट किया गया

CLOCKWISE वाला कोण फ़ील्ड &#39;गलत&#39; पर सेट किया गया

CLOCKWISEप्रॉपर्टी डिफ़ॉल्ट रूप से false पर सेट होती है. इसका मतलब है कि घड़ी की उलटी दिशा में चलने से ऐंगल में बढ़ोतरी होगी.

यह एक ग्लोबल प्रॉपर्टी है. इसलिए, सेट किए जाने पर यह सभी ऐंगल फ़ील्ड में बदलाव करेगी.

शून्य स्थिति

Blockly.FieldAngle.OFFSET प्रॉपर्टी सेट करती है कि कहां 0 डिग्री है. डिफ़ॉल्ट रूप से, शून्य डिग्री पॉज़िटिव x-ऐक्सिस (दाईं ओर) पर अलाइन होता है. इसके बाद, यह प्रॉपर्टी उस पोज़िशन को कुछ डिग्री तक "ऑफ़सेट" कर देती है.

दाईं ओर ऐंगल पिकर शून्य

सबसे ऊपर ऐंगल पिकर शून्य

OFFSET प्रॉपर्टी डिफ़ॉल्ट रूप से 0 पर सेट होती है. इसका मतलब है कि ज़ीरो डिग्री, पॉज़िटिव x-ऐक्सिस पर सेट होता है.

यह एक ग्लोबल प्रॉपर्टी है. इसलिए, सेट किए जाने पर यह सभी ऐंगल फ़ील्ड में बदलाव करेगी.

रेंज

Blockly.FieldAngle.WRAP प्रॉपर्टी, वैल्यू की रेंज सेट करती है. वैल्यू की रेंज (-360 + WRAP, WRAP) के बराबर है. इसका मतलब है कि 360 की WRAP वैल्यू (0, 359.9) की रेंज देगी और 180 की WRAP वैल्यू (-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 पर सेट है, इसलिए फ़ील्ड के ग्राफ़िकल एलिमेंट, 30 के बजाय 15 के मल्टीपल दिखाते हैं.