blockly > WorkspaceSvg

כיתה WorkspaceSvg

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

Signature:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

הרחבה: סביבת עבודה

הטמעות: IASTNodeLocationSvg

יצרנים

יצרן גורמי שינוי תיאור
(constructor)(אפשרויות) יצירת מופע חדש של המחלקה WorkspaceSvg

תכונות

מאפיין (property) גורמי שינוי סוג תיאור
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | null המפתחים יכולים להגדיר את הפונקציה הזו כדי להוסיף אפשרויות של תפריט מותאם אישית לתפריט ההקשר של סביבת העבודה, או לערוך את קבוצת אפשרויות התפריט שנוצרה בסביבת העבודה.
keyboardAccessibilityMode boolean True אם מצב הנגישות של המקלדת מופעל, או FALSE אם לא.
מעובד boolean סטטוס העיבוד של סביבת עבודה מסוג SVG. הפונקציה מחזירה את הערך false עבור סביבות עבודה ללא GUI ו-true עבור מופעים של WorkspaceSvg.
קנה מידה מספר קנה המידה הנוכחי.
סרגל גלילה ScrollbarPair | null סרגלי הגלילה של סביבת העבודה הזו, אם הם קיימים.
scrollX מספר

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

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

מה שמבלבל בערך הזה הוא שהוא לא כולל את הקיזוז boluteLeft, ולא יכול לכלול אותו. הסיבה לכך היא שהוא משמש לחישוב הערך viewLeft.

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

כשסביבת העבודה מופעלת, המקור viewLeft ו-Workspace נמצאים באותו מיקום X. ככל שאזור העריכה מחליק ימינה מתחת לתצוגה, הערך הזה (scrollX) נעשה חיובי יותר וה-ViewLeft הופך לשלילי יותר ביחס למקור של סביבת העבודה (נניח שמקור סביבת העבודה הוא נקודה על אזור העריכה שמחליקה ימינה בזמן שהקנבס זז).

כך שאם ה- ScrollX יכלול את ה- לפנות Left, הפעולה הזו תגרום ל "ביטול השינויים" במקור של סביבת העבודה. כלומר, ה-ViewLeft יייצג את הקצה השמאלי של blocklyDiv, ולא את הקצה השמאלי של סביבת העבודה.

scrollY מספר

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

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

הדבר המבלבל הזה בערך הזה הוא שהוא לא כולל את הקיזוז של הערך המוחלט, ולא יכול לכלול אותו. הסיבה לכך היא שהוא משמש לחישוב הערך viewTop.

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

כשסביבת העבודה מופעלת, המקור viewTop וסביבת העבודה נמצאים באותו מיקום Y. ככל שהקנבס מחליק לחלק התחתון, הערך (scrollY) נעשה חיובי יותר והתצוגה העליונה הופכת לשלילית יותר ביחס למקור של סביבת העבודה (תמונה במקור של סביבת העבודה כנקודה על אזור העריכה שמחליקה למטה ככל שהקנבס זז).

אם הגלילה תכלול את התחילית soluteTop, הפעולה הזו תגרום ל'ביטול השינויים' במקור של סביבת העבודה. כלומר, ה-ViewTop תייצג את הקצה העליון של ה-blocklyDiv ולא את הקצה העליון של סביבת העבודה.

startScrollX מספר ערך גלילה אופקית כשהגלילה התחילה ביחידות פיקסלים.
startScrollY מספר ערך של גלילה אנכית כשהגלילה התחילה ביחידות פיקסלים.
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
אשפה אשפה | null האשפה של סביבת העבודה (אם יש).
zoomControls_ ZoomControls | null

שיטות

שיטה גורמי שינוי תיאור
addTopBlock(block) הוספת בלוק לרשימת הבלוקים המובילים.
addTopBoundedElement(element) הוספת רכיב עם תחום מוגדר לרשימת הרכיבים עם הגבול העליון.
addTopComment(comment) הוספת תגובה לרשימת התגובות המובילות.
centerOnBlock(id, blockOnly) גוללים את סביבת העבודה כדי למרכז את הבלוק הנתון. אם לבלוק יש בלוקים אחרים מוערם מתחתיו, סביבת העבודה תמורכז במקבץ, אלא אם הבלוקOnly TRUE.
cleanUp() כדי לפנות את סביבת העבודה, מסדרים את כל הבלוקים בעמודה.
clear() היפטרות מכל הבלוקים בסביבת העבודה, תוך התמקדות במניעת שינויים של גודל.
createDom(opt_backgroundClass, injectionDiv) יצירת רכיבי ה-DOM של סביבת העבודה.
createVariable(name, opt_type, opt_id) יוצרים משתנה חדש בשם הנתון. מעדכנים את התפריט הנפתח כדי שהמשתנה החדש יוצג באופן מיידי.
deleteVariableById(id) מוחקים משתנה לפי המזהה שהועבר. מעדכנים את התפריט הנפתח כך שיראה באופן מיידי שהמשתנה נמחק.
dispose() צריך למחוק את סביבת העבודה הזו. יש לבטל את הקישור לכל רכיבי DOM כדי למנוע דליפות זיכרון.
getAllBlocks(ordered) חיפוש כל הבלוקים בסביבת העבודה. הבלוקים ממוינים באופן אופציונלי לפי מיקום, מלמעלה למטה (עם הטיה קלה של LTR או RTL).
getAudioManager() צריך להוריד את מנהל האודיו לסביבת העבודה הזו.
getBlockById(id) צריך לחפש את הבלוק בסביבת העבודה הזו עם המזהה שצוין.
getBlocksBoundingBox() חישוב התיבה התוחמת של הבלוקים בסביבת העבודה. מערכת תיאום: הקואורדינטות של סביבת העבודה.
getBubbleCanvas() מוצאים את רכיב ה-SVG שיוצר את משטח הבועה.
getButtonCallback(key) קבלת פונקציית הקריאה החוזרת שמשויכת למפתח נתון, עבור לחיצות על לחצנים ותוויות בתפריט הנפתח.
getCanvas() מוצאים את רכיב ה-SVG שיוצר את משטח השרטוט.
getComponentManager() הפונקציה מקבלת את מנהל הרכיבים של סביבת העבודה הזו.
getCursor() הסמן של סביבת העבודה הזו.
getDragTarget(e) מחזירה את יעד הגרירה שמעליו נמצא אירוע המצביע.
getFlyout(opt_own) מקש getter של תהליך העבודה המשויך לסביבת העבודה הזו. ייתכן שארגז הכלים הזה הוא בבעלות ארגז הכלים או סביבת העבודה, בהתאם להגדרות של ארגז הכלים. אם אין נתיב נשלף, הערך יהיה null.
getGrid() מוצאים את אובייקט הרשת של סביבת העבודה. אם אין אובייקט כזה, צריך להזין את הערך null.
getInverseScreenCTM() Getter ל-CTM של המסך ההפוך.
getMarkerManager() צריך להוריד את מנהל הסמנים לסביבת העבודה הזאת.
getMetricsManager() הפונקציה מקבלת את מנהל המדדים של סביבת העבודה הזו.
getParentSvg() צריך להוריד את רכיב ה-SVG שמכיל את סביבת העבודה הזו. הערה: אנחנו מניחים שהשם הזה נקרא רק לאחר שסביבת העבודה הוחדרה ל-DOM.
getRenderer() צריך לצרף את הכלי לרינדור הבלוקים לסביבת העבודה הזו.
getRootWorkspace()
getScale() בודקים את גורם הזום של סביבת העבודה. אם לסביבת העבודה יש הורה, אנחנו קוראים להורה כדי לקבל את קנה המידה של סביבת העבודה.
getSvgGroup() מחזירה את קבוצת ה-SVG לסביבת העבודה.
getTheme() מקבלים את אובייקט העיצוב של סביבת העבודה.
getToolbox() מאתר את ארגז הכלים שמשויך לסביבת העבודה הזו, אם קיים.
getToolboxCategoryCallback(key) מקבלים את פונקציית הקריאה החוזרת שמשויכת למפתח מסוים, לאכלוס קטגוריות של ארגז כלים בהתאמה אישית בסביבת העבודה הזו.
getTopBlocks(ordered) מוצאת את הבלוקים ברמה העליונה ומחזירה אותם. הבלוקים ממוינים באופן אופציונלי לפי מיקום, מלמעלה למטה (עם הטיה קלה של LTR או RTL).
getTopBoundedElements() מוצאת את הרכיבים שגובים ברמה העליונה ומחזירה אותם.
getWidth() מחזירה את ההיסט האופקי של סביבת העבודה. מיועד לתאימות LTR/RTL ב-XML.
hideChaff(onlyClosePopups) סגירה של הסברים קצרים, תפריטי הקשר, בחירות של תפריטים נפתחים וכו'.
hideComponents(onlyClosePopups) הסתרה של רכיבים שניתנים להסתרה אוטומטית (כמו Flyout, פח אשפה ורכיבים שרשומים על ידי המשתמשים).
highlightBlock(id, opt_state) הדגשה או ביטול ההדגשה של בלוק בסביבת העבודה. הדגשת חסימה משמשת בדרך כלל לסימון חזותי של בלוקים שמתבצעים כרגע.
isDraggable() האם סביבת העבודה הזו ניתנת לגרירה?
isDragging() האם המשתמש גורר בלוק או גולל כרגע את התפריט הנפתח/סביבת העבודה?
isMovable()

האם ניתן להזיז את סביבת העבודה הזו?

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

isMovableHorizontally() אפשר להזיז את סביבת העבודה הזו לרוחב?
isMovableVertically() האם סביבת העבודה הזו ניתנת להזזה אנכית?
isVisible() מאחזר עבור גלוי
markFocused() צריך לסמן את סביבת העבודה הזו בתור סביבת העבודה הראשית כרגע.
moveDrag(e) מעקב אחר גרירה של אובייקט בסביבת העבודה הזו.
newBlock(prototypeName, opt_id) קבלת בלוק חדש שנוצר.
הדבקה(מצב) מדביק את הבלוק או התגובה שצוינו ב-Workspace לסביבת העבודה. לא בודקת אם יש קיבולת שנותרה לאובייקט. צריך לבצע את הפעולה לפני הקריאה לשיטה הזו.
recordDragTargets() מכינים רשימה של כל האזורים שנמחקו בסביבת העבודה הזו.
refreshTheme() צריך לרענן את כל הבלוקים בסביבת העבודה אחרי עדכון העיצוב.
registerButtonCallback(key, func) רישום פונקציית קריאה חוזרת המשויכת למפתח נתון, לקליקים על לחצנים ותוויות בתפריט הנפתח. למשל, לחצן שצוין על ידי ה-XML צריך להיות תואם לקריאה לרישוםButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
registerToolboxCategoryCallback(key, func) רישום פונקציית קריאה חוזרת שמשויכת למפתח נתון כדי לאכלס קטגוריות מותאמות אישית של ארגזי כלים בסביבת העבודה הזו. ראה דוגמה לקטגוריות של משתנים ותהליכים.
removeButtonCallback(key) הסרת קריאה חוזרת (callback) עבור לחיצה על לחצן ברשימה הנפתחת.
removeToolboxCategoryCallback(key) הסרת קריאה חוזרת (callback) עבור קליק על שם של קטגוריה מותאמת אישית בארגז הכלים.
removeTopBlock(block) הסרת בלוק מרשימת הבלוקים המובילים.
removeTopBoundedElement(element) מסירה רכיב עם תחום מוגדר מרשימת הרכיבים עם תחום הגבול העליון.
removeTopComment(comment) הסרת תגובה מרשימת התגובות המובילות.
renameVariableById(id, newName) כדי לשנות את השם של משתנה, מעדכנים את השם שלו במפת המשתנים. מעדכנים את התפריט הנפתח כדי שהמשתנה עם השם החדש יוצג באופן מיידי.
render() רינדור כל הבלוקים בסביבת העבודה.
resize() שינוי הגודל והמיקום של כל רכיבי Chrome ב-Workspace (ארגז כלים, אשפה, סרגלי גלילה וכו') צריך להפעיל את התרחיש הזה כשיש שינוי שדורש חישוב מחדש של המידות והמיקומים של האשפה, הזום, ארגז הכלים וכו' (למשל, שינוי הגודל של החלון).
scrollCenter() מרכוז של סביבת העבודה.
setResizeHandlerWrapper(handler) שמור את נתוני שינוי הגודל של ה-handler כדי שנוכל למחוק אותם מאוחר יותר.
setResizesEnabled(enabled) מעדכנים אם בסביבת העבודה הזו הופעלו שינויים של גודל. אם המדיניות מופעלת, הגודל של סביבת העבודה ישתנה בהתאם לצורך. אם היא מושבתת, הגודל של סביבת העבודה לא ישתנה עד שהיא תופעל מחדש. מומלץ להשתמש באפשרות הזו כדי למנוע שינוי של הגודל במהלך פעולה באצווה, במטרה לשפר את הביצועים.
setScale(newScale) הגדרת הגורם לשינוי מרחק התצוגה של סביבת העבודה.
setTheme(theme) מגדירים את אובייקט העיצוב של סביבת העבודה. אם לא הועבר אף עיצוב, ברירת המחדל היא העיצוב Classic.
setVisible(isVisible) החלפת מצב התצוגה של סביבת העבודה. כרגע מיועד לסביבת העבודה הראשית בלבד.
startDrag(e, xy) בסביבת העבודה הזו אפשר להתחיל לעקוב אחר גרירה של אובייקט.
Translate(x, y) תרגום של סביבת העבודה הזו לקואורדינטות חדשות.
updateInverseScreenCTM() סימון ה-CTM של המסך ההפוך כמלוכלך.
updateToolbox(toolboxDef) שינוי עץ הבלוקים בארגז הכלים הקיים.
zoom(x, y, amount) התקרבות או התרחקות של סביבת העבודה ביחס לקואורדינטה הנתונה (x, y) או ממורכזת.
zoomCenter(type) שינוי מרחק התצוגה של הבלוקים שנמצאים במרכז התצוגה, עם התקרבות או התרחקות.
zoomToFit() משנים את מרחק התצוגה של הבלוקים כך שיתאימו לסביבת העבודה, במידת האפשר.