שדות מספרים

בשדה מספר מאוחסן מספר כ-value, ובשדה מחרוזת מאוחסנת מחרוזת כ-text. הערך של value הוא תמיד מספר תקין, בהתאם לאילוצים שהוגדרו לשדה בזמן היצירה. הטקסט יכול להיות כל מחרוזת שהוזנה בכלי העריכה.

שדה למספר

בלוק עם התווית 'number:' ושדה מספר שהערך שלו הוא 100.

שדה למספר עם עורך פתוח

אותו בלוק עם השדה שנערך.

שדה מספרים בבלוק מכווץ

אותו בלוק אחרי שהוא מכווץ. התווית שלו היא 'number: 100' והקצה השמאלי שלו משונן כדי לציין שהוא מכווץ.

יצירה

JSON

{
  "type": "example_number",
  "message0": "number: %1",
  "args0": [
    {
      "type": "field_number",
      "name": "FIELDNAME",
      "value": 100,
      "min": 0,
      "max": 100,
      "precision": 10
    }
  ]
}

JavaScript

Blockly.Blocks['example_number'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("number:")
        .appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
  }
};

הפונקציה ליצירת מספרים מקבלת את הפרמטרים הבאים:

  • value אופציונלי
  • min אופציונלי
  • max אופציונלי
  • precision אופציונלי
  • validator אופציונלי

הערך value צריך להיות ניתן להמרה למספר. אם לא, ייעשה שימוש בערך 0.

סידור הפרקים

JSON

קובץ ה-JSON של שדה מספרים נראה כך:

{
  "fields": {
    "FIELDNAME": 0
  }
}

כאשר FIELDNAME הוא מחרוזת שמפנה לשדה מספרי, והערך הוא הערך שרוצים להחיל על השדה. הערך פועל לפי אותם כללים כמו ערך הבונה.

XML

קובץ ה-XML של שדה מספרים נראה כך:

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

המאפיין name של הצומת field מכיל מחרוזת שמפנה לשדה מספר, והאלמנט הפנימי text של הצומת הוא value שיוחל על השדה. ערך הטקסט הפנימי צריך להיות בהתאם לאותם כללים שחלים על ערך הבונה.

מגבלות

אפשר להגדיר אילוצים בהגדרת השדה או באמצעות הפונקציה setConstraints.

הגעת לערך המינימלי

הערך min קובע את הערך הכי קטן או הכי שלילי שהשדה יכול להכיל.

הגעת לערך המקסימלי

הערך max קובע את הערך הגדול ביותר או החיובי ביותר שהשדה יכול להכיל.

עיגול

הפונקציה precision מעגלת את הערך לכפולה הקרובה ביותר של הדיוק. אפשר להשתמש בזה כדי שהשדה יקבל רק כפולות של 0 .01,‏ 10,‏ 42 וכו'.

מגבלות נפוצות

מספרים חיוביים

כדי לאלץ את השדה לקבל רק מספרים חיוביים, מגדירים את הערך של min ל-1.

מספרים שלמים

כדי לאלץ את השדה לקבל רק מספרים שלמים, מגדירים את precision ל-1.

יצירת כלי לאימות מספרים

הערך של שדה מספרים הוא מספר, ולכן כל אמצעי האימות צריכים לקבל number ולהחזיר number, null או undefined.

הנה דוגמה לכלי אימות שמשנה את הערך ל-0 או ל-1 בהתאם לערך שהיה (אי-זוגי או זוגי).

function(newValue) {
  return newValue % 2;
}

קובץ GIF מונפש שמציג את פעולת המאמת. כשהמשתמש מקליד 10 ולוחץ במקום אחר, השדה מוגדר ל-0. כשהמשתמש מקליד 11 ולוחץ במקום אחר, השדה מוגדר ל-1.