ऐंगल फ़ील्ड में वैल्यू के तौर पर कोई संख्या और टेक्स्ट के तौर पर स्ट्रिंग सेव की जाती है. इसका मान 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 वैल्यू वाला एक उदाहरण दिया गया है:
ROUND
प्रॉपर्टी डिफ़ॉल्ट रूप से 15 होती है. अगर आप स्नैपिंग को बंद
करना चाहते हैं, तो इसे 0 पर सेट करें.
यह एक ग्लोबल प्रॉपर्टी है. इसलिए, सेट किए जाने पर यह सभी ऐंगल फ़ील्ड में बदलाव करेगी.
दिशा
Blockly.FieldAngle.CLOCKWISE
प्रॉपर्टी से यह बदल जाता है कि किस दिशा से कोण की वैल्यू बढ़ती है. इस वैल्यू को true
पर सेट करने से कोण में बढ़ोतरी होती है. ऐसा इसलिए, क्योंकि सिलेक्टर को घड़ी की सुई की दिशा में घुमाते समय, इसे false
पर सेट करने से कोण बढ़ता है.
CलॉकWISE को 'सही है' पर सेट किया गया
CलॉकWISE को 'गलत' पर सेट किया गया
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)
की रेंज देगी.
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 के मल्टीपल दिखाते हैं.