מרחב השמות Events
שיעורים
מחלקה | תיאור |
---|---|
BlockBase | סיווג מופשט לכל אירוע שקשור לבלוק. |
BlockChange | הודעה למאזינים כשרכיב כלשהו בבלוק השתנה (למשל ערכי שדות, תגובות וכו'). |
BlockCreate | מודיע למאזינים כשבלוק (או סטאק מחובר של בלוקים) נוצר. |
BlockDelete | התראה למאזינים כשבלוק (או סטאק מחובר של בלוקים) נמחק. |
BlockDrag | ההודעה הזו מועברת למאזינים כשמקישים על בלוק וגוררים אותו או משחררים אותו באופן ידני. |
BlockFieldIntermediateChange | האירוע הזה מתריע למאזינים כשהערך של שדה בבלוק השתנה אבל השינוי עדיין לא הושלם, וצפוי להיגרם בעקבותיו אירוע של שינוי בבלוק. |
BlockMove | שליחת התראה למאזינים כשבלוק מועבר. יכול להיות שזה יקרה מחיבור אחד למשנהו, או ממיקום אחד בסביבת העבודה למיקום אחר. |
BubbleOpen | מחלקה לאירוע פתיחה של בועה. |
קליק | ההודעה הזו מועברת למאזינים כדי להודיע להם שלחצו על רכיב מסוים. |
CommentBase | מחלקה מופשטת לאירוע של תגובה. |
CommentChange | התראה למאזינים על כך שתוכן התגובה בסביבת העבודה השתנה. |
CommentCollapse | |
CommentCreate | התראה למאזינים על כך שנוצר תגובה בסביבת העבודה. |
CommentDelete | התראה למאזינים על מחיקה של תגובה בסביבת העבודה. |
CommentDrag | התראה למאזינים כשמשגררים או משחררים תגובה באופן ידני. |
CommentMove | התראה למאזינים על כך שהערה בסביבת העבודה הועברה. |
CommentResize | ההודעה הזו מועברת למאזינים כשמשנים את הגודל של הערה בסביבת עבודה. |
FinishedLoading | ההודעה מועברת למאזינים כשסביבת העבודה מסיימת את תהליך הדה-סריאליזציה מ-JSON/XML. |
נבחרה | הכיתה של האירוע שנבחר. האירוע הזה מאפשר להודיע למאזינים שנבחר רכיב חדש. |
ThemeChange | הודעה למאזינים על כך שנושא סביבת העבודה השתנה. |
ToolboxItemSelect | האירוע הזה מאפשר להודיע למאזינים שפריט מתיבת הכלים נבחר. |
TrashcanOpen | התראה למאזינים כשפחית האשפה נפתחת או נסגרת. |
UiBase | מחלקת בסיס לאירוע בממשק המשתמש. אירועי ממשק משתמש הם אירועים שלא צריך לשלוח אותם דרך האינטרנט כדי שאפשר יהיה לערוך במספר משתמשים (למשל, גלילה בסביבת העבודה, שינוי מרחק התצוגה, פתיחת קטגוריות של תיבת הכלים). אי אפשר לבטל או לבצע מחדש אירועים בממשק המשתמש. |
VarBase | מחלקה מופשטת לאירוע משתנה. |
VarCreate | האירוע הזה מעדכן את המאזינים על יצירת מודל משתנה. |
VarDelete | הודעה למאזינים על כך שמודל משתנה נמחק. |
VarRename | הודעה למאזינים על שינוי השם של מודל משתנה. |
VarTypeChange | הודעה למאזינים על כך שסוג המשתנה השתנה. |
ViewportChange | ההודעה הזו מועברת למאזינים כדי להודיע להם שהמיקום או קנה המידה של משטח סביבת העבודה השתנו. לא מתקבלת התראה כשגודל סביבת העבודה משתנה. |
כיתות מופשטים
Abstract Class | תיאור |
---|---|
Abstract | מחלקה מופשטת לאירוע. |
ערכים מספריים
ספירה | תיאור |
---|---|
BubbleType | |
ClickTarget |
פונקציות
פונקציה | תיאור |
---|---|
clearPendingUndo() | שינוי אירועי ביטול בהמתנה כך שכשהם יופעלו, הם לא ייכנסו לסטאק הביטולים. הפונקציה נקראת על ידי Workspace.clearUndo. |
disable() | להפסיק את שליחת האירועים. כל קריאה לפונקציה הזו חייבת לכלול גם קריאה ל-enable. |
disableOrphans(event) | מגדירים אם בלוק מושבת בהתאם לחיבור שלו. כדאי להשתמש באפשרות הזו באפליקציות שבהן כל הבלוקים צריכים להיות מחוברים לבלוק עליון. |
enable() | מתחילים לשלוח אירועים. אלא אם האירועים כבר הושבתו כשהתבצעה הקריאה המתאימה להשבתה. |
filter(queue) | סינון האירועים שבתור על ידי מיזוג כפילויות, הסרת אירועים ריקים והסדרה מחדש של אירועי BlockChange. ההיסטוריה של הפונקציה הזו: הפונקציה הזו נוספה במקור ב-commit cf257ea5 במטרה לצמצם באופן משמעותי את המספר הכולל של האירועים שנשלחים. בהתחלה, הבעיה השפיעה רק על אירועי BlockMove, אבל עם הזמן נוספו אירועים אחרים. קוד נוסף כדי לשנות את הסדר של אירועי BlockChange שנוספו ב-commit 5578458, מסיבות לא ברורות, אבל סביר להניח כחלק מניסיון חלקי בלבד לתקן בעיות בסדר האירועים במהלך מוטציות של בלוקים. כנראה שהקוד הזה היה צריך להתווסף לחלק העליון של הפונקציה, לפני המיזוג והסרת הערכים האפסיים, אבל הוא נוסף בחלק התחתון מסיבות שכבר לא זוכרים. בחקירות הבאגים האלה מפורטת סקירה מלאה יותר של הבעיה הבסיסית וחלק מהכשלים שנגרמו בגלל התיקון הלא מלא או השגוי: https://github.com/google/blockly/issues/8225#issuecomment-2195751783 https://github.com/google/blockly/issues/2037#issuecomment-2209696351 בהמשך, בבקשת התיקון (PR) מספר 1205, ההטמעה המקורית מסוג O(n^2) הוחלפה בהטמעה בזמן לינארי, אבל לאחר מכן בוצעו תיקונים נוספים. באוגוסט 2024 ביצענו כמה פעולות פשטוּת משמעותיות: בעבר, הפונקציה הזו הוזמנה מ-Workspace.prototype.undo, אבל המוטציה של האירועים על ידי הפונקציה הזו הייתה הסיבה לבעיה מס' 7026 (שימו לב שהאירועים ישולבו בצורה שונה בסדר הפוך לעומת סדר ישיר). התיקון המקורי שנבחר לבעיה הזו היה הוספת קוד (ב-PR #7069) ל-fireNow כדי לסנן את .undoStack_ ו-.redoStack_ של כל סביבת עבודה שהשתתפה זה עתה בשליחת אירועים. נראה שהפתרון הזה פתר את הבעיה, אבל הוא הוסיף מורכבות רבה והקשה להבין איך האירועים עוברים עיבוד לצורך ביטול או ביצוע מחדש. לכן, הסרנו את הקריאה מ-undo ואת קוד העיבוד לאחר האירוע, והגדרתנו את forward=true כברירת המחדל, בעוד שהקריאה לפונקציה עם forward=false הוצאה משימוש. במקביל, הקוד הפגום לשינוי הסדר של אירועי BlockChange הוחלף בגרסה פחות פגומה של אותה פונקציונליות בפונקציה חדשה, enqueueEvent, שנקראת מ-fireInternal. כך מובטח שהאירועים יהיו בסדר הנכון בזמן הקריאה של המסנן. בנוסף, קוד המיזוג של האירועים השתנה כך שיתבצע מיזוג רק של אירועים סמוכים. כך הפשטנו את ההטמעה, תוך הבטחה ששילוב האירועים לא יוביל לשינוי הסדר שלהם. |
fire(event) | הוספת אירוע לתור כדי לשלוח אותו למאזינים לשינויים. הערות: - האירועים נכנסים לתור עד לתפוגה, בדרך כלל אחרי שהעיבוד הושלם או בסוף המיקרו-משימה הנוכחית, אם היא לא פועלת בדפדפן. - אירועים שנמצאים בתור עשויים לעבור שינוי הרסני על ידי שילוב עם אירועים שיתווספו לתור מאוחר יותר, אבל רק עד שהם יופעלו. - האירועים מועברים באמצעות השיטה fireChangeListener בסביבת העבודה המושפעת. |
fromJson(json, workspace) | מפענחים את ה-JSON לאירוע. |
get(eventType) | אחזור המחלקה של סוג אירוע ספציפי מהמרשם. |
getGroup() | הקבוצה הנוכחית. |
getRecordUndo() | הפונקציה מחזירה אם אירועים יתווספו לערימה של הפעולות הלא רצויות או לא. |
isEnabled() | הפונקציה מחזירה אם ניתן להפעיל אירועים או לא. |
setGroup(state) | להתחיל או להפסיק קבוצה. |
setRecordUndo(newValue) | ההגדרה קובעת אם אירועים יתווספו למקבץ הפעולות הקודמות. |
ממשקים
משתנים
משתנה | תיאור |
---|---|
BLOCK_CHANGE | |
BLOCK_CREATE | |
BLOCK_DELETE | |
BLOCK_DRAG | |
BLOCK_FIELD_INTERMEDIATE_CHANGE | |
BLOCK_MOVE | |
BUBBLE_OPEN | |
BUMP_EVENTS | רשימה של אירועים שגורמים להחזרת אובייקטים לחלק הגלוי של סביבת העבודה. חשוב לא להתבלבל עם האפשרות 'הסרת משתתפים', שמאפשרת להסיר משתתפים מתוך שיחה כדי שהם לא יופיעו כמחוברים. |
שינוי | |
קליק | |
COMMENT_CHANGE | |
COMMENT_CREATE | |
COMMENT_DELETE | |
COMMENT_DRAG | |
COMMENT_MOVE | |
COMMENT_RESIZE | |
יצירה | |
DELETE | |
FINISHED_LOADING | |
MOVE | |
נבחרה | |
THEME_CHANGE | |
TOOLBOX_ITEM_SELECT | |
TRASHCAN_OPEN | |
UI | |
VAR_CREATE | |
VAR_DELETE | |
VAR_RENAME | |
VIEWPORT_CHANGE |
כינויים מסוג טקסט
Type Alias | תיאור |
---|---|
BumpEvent | סוג האירועים שגורמים להחזרת אובייקטים לחלק הגלוי של סביבת העבודה. חשוב לא להתבלבל עם האפשרות 'הסרת משתתפים', שמאפשרת להסיר משתתפים מתוך שיחה כדי שהם לא יופיעו כמחוברים. |