שדה זווית שומר מספר בתור הערך שלו ומחרוזת בתור הטקסט שלו. הערך הוא מספר בין 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
הוא מחרוזת שמפנה לשדה זווית, והערך הוא הערך שיש להחיל על השדה. הערך פועל לפי אותם כללים כמו הערך של ה-constructor.
XML
ה-XML של שדה זווית נראה כך:
<field name="FIELDNAME">0</field>
במאפיין name
יש מחרוזת שמפנה לשדה זווית, והטקסט הפנימי הוא הערך שצריך להחיל על השדה. ערך הטקסט הפנימי פועל לפי אותם כללים כמו הערך של ה-constructor.
התאמה אישית
הצמדה
המאפיין Blockly.FieldAngle.ROUND
משנה את הערכים שמשתנה בוחר הזווית כשמשתמשים בעכבר.
לפניכם דוגמה עם ערך ROUND
של 70:
ערך ברירת המחדל של המאפיין ROUND
הוא 15. אם רוצים להשבית את מצב ההצמדה, הגדירו אותו ל-0.
זהו נכס גלובלי, לכן הוא ישנה את כל שדות הזוויות לאחר הגדרתו.
כיוון
המאפיין Blockly.FieldAngle.CLOCKWISE
משנה את הכיוון שמוביל לעלייה בערך הזווית. אם מגדירים את הערך כ-true
, מגדילים את הזווית כשזזים את הבורר בכיוון השעון. אם מגדירים אותו לערך false
, מגדילים את הזווית כשמכוונים נגד כיוון השעון.
CLOCKWISE מוגדר ל-True
CLOCKWISE מוגדר ל-False
ברירת המחדל של המאפיין 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.