שדות תמונה

שדה תמונה מאחסן מחרוזת כערך ומחרוזת כטקסט. הערך שלו הוא src של התמונה, והטקסט שלו הוא מחרוזת alt שמתארת או מייצגת את התמונה.

שדה תמונה

בלוק עם התווית image: ותמונה של כוכב צהוב.

שדה תמונה בבלוק מכווץ

אותו בלוק אחרי שהוא מכווץ. התווית היא 'משתנה: *', כאשר '*' הוא הטקסט החלופי של התמונה, והקצה הימני משונן כדי לציין שהיא מכווצת.

יצירה

JSON

{
  "type": "example_image",
  "message0": "image: %1",
  "args0": [
    {
      "type": "field_image",
      "src": "https://www.gstatic.com/codesite/ph/images/star_on.gif",
      "width": 15,
      "height": 15,
      "alt": "*"
    }
  ]
}

JavaScript

Blockly.Blocks['example_image'] = {
  init: function() {
    this.appendDummyInput()
      .appendField("image:")
      .appendField(new Blockly.FieldImage(
        "https://www.gstatic.com/codesite/ph/images/star_on.gif",
        15,
        15,
        "*"));
  }
};

הקונסטרוקטור של התמונה מקבל:

פרמטר תיאור
src מחרוזת שמפנה לקובץ תמונה רסטר.
width חייב להיות מספר שונה מאפס.
height חייב להיות מספר שונה מאפס.
opt_alt (אופציונלי) מחרוזת שמתארת או מייצגת את התמונה בצורה מדויקת. התמונה הזו תשמש במקום התמונה כשהבלוק מכווץ. אם הערך הוא null או undefined, נעשה שימוש במחרוזת ריקה.
opt_onClick (אופציונלי) פונקציה להפעלה כשלוחצים על השדה.
opt_flipRtl (אופציונלי) ערך בוליאני. אם הערך הוא true, התמונה תתהפך לאורך הציר האנכי כשמצב הכתיבה הוא מימין לשמאל. ברירת המחדל היא false. שימושי עבור סמלים של 'פנייה שמאלה' ו'פנייה ימינה'.

סידור הפרקים

אי אפשר לבצע סריאליזציה של שדות תמונה.

Click handler

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

אפשר להגדיר את הפונקציה לטיפול באירוע לחיצה בבונה JavaScript או באמצעות הפונקציה setOnClickHandler.

זוהי דוגמה ל-on click handler שמכווץ את הבלוק כשמפעילים אותו.

function() {
    this.getSourceBlock().setCollapsed(true);
}

קובץ GIF מונפש שמציג לחיצה על התמונה, כיווץ של הבלוק, לחיצה ימנית להצגת תפריט ההקשר, בחירה באפשרות 'הרחבת הבלוק' והרחבה של הבלוק.