מצב חסימה

למופעי בלוק יש מספר מאפיינים שמגדירים את ההתנהגות שלהם כלפי המשתמש. אפשר להגדיר אותם בהגדרת הבלוק, אבל בדרך כלל משתמשים בהם כדי להגביל בלוקים בסביבת העבודה כך שישקפו מאפיינים מסוימים של הדומיין (למשל, יש בדיוק אירוע 'התחלה' אחד), או כדי למקד את המאמץ של המשתמש (למשל, הדרכה).

מצב שניתן למחיקה

block.setDeletable(false);

אם המדיניות מוגדרת לערך false, המשתמש לא יוכל למחוק את החסימה. בלוקים מוגדרים כברירת מחדל כניתנים למחיקה בסביבת עבודה שניתנת לעריכה.

אפשר למחוק כל בלוק (גם בלוקים שלא ניתן למחוק) באופן אוטומטי:

block.dispose();

מצב שניתן לערוך

block.setEditable(false);

אם הערך הוא false, המשתמש לא יוכל לשנות את השדות של הבלוק (למשל, תפריטים נפתחים וקלט טקסט). ברירת המחדל של בלוקים היא שניתן לערוך אותם בסביבת עבודה שניתנת לעריכה.

מצב שאפשר להזיז

block.setMovable(false);

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

אפשר להעביר כל בלוק (גם בלוקים שלא ניתן להזיז) באופן פרוגרמטי אחרי שהוא מופיע במרחב עבודה.

block.moveBy(dx, dy)

מיקום ההתחלה של בלוק בסביבת עבודה הוא (0, 0) כברירת מחדל.

חסימת נתונים

block.data = '16dcb3a4-bd39-11e4-8dfc-aa07a5b093db';

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

לרוב משתמשים בזה כדי לשייך בלוק למשאב חיצוני.

כשמבצעים סריאליזציה ל-JSON, הנתונים מאוחסנים כמאפיין ברמה העליונה בבלוק:

{
  "type": "my_block",
  "data": "16dcb3a4-bd39-11e4-8dfc-aa07a5b093db",
  // etc..
}

כשמבצעים סריאליזציה ל-XML (מערכת הסריאליזציה הישנה שהוצאה משימוש), מחרוזת הנתונים מאוחסנת בתג <data></data> בתוך הבלוק:

<block type="my_block">
  <data>16dcb3a4-bd39-11e4-8dfc-aa07a5b093db</data>
  <!-- etc... -->
</block>