封鎖 >WorkspaceSvg

WorkspaceSvg 類別

適用於工作區的類別。這個螢幕區域可選用垃圾桶、捲軸、泡泡和拖曳。

Signature:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

擴充功能: Workspace

實作: IASTNodeLocationSvg

建構函式

建構函式 修飾符 說明
(建構函式)(選項) 建構 WorkspaceSvg 類別的新例項

屬性

屬性 修飾符 類型 說明
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) |空值 開發人員可以定義這個函式,藉此將自訂選單選項加入工作區的內容選單,或是編輯工作區建立的選單選項組合。
keyboardAccessibilityMode 布林值 如果鍵盤無障礙模式已開啟,則為「true」,否則傳回「false」。
算繪 布林值 SVG 工作區的轉譯狀態。針對無頭工作區傳回 false,對 WorkspaceSvg 的執行個體傳回 true。
縮放 數字 目前規模。
捲軸 ScrollbarPair |空值 這個工作區的捲軸 (如有)。
scrollX 數字

目前水平捲動偏移 (以像素為單位) (相對於工作區來源)。

顧名思義,在檢視區塊下方以及移動的畫布上,會很有幫助。畫布向右移動時,這個值會變得比較正面,檢視畫面也變為「看見」就在畫布左側畫布向左移動時,這個值會變得負值,且檢視畫面變為「看見」就在畫布右側

這個值令人困惑,表示其不會,且不得包含絕對左移。這是因為這個欄位用於計算 viewLeft 值。

viewLeft 是相對於工作區來源 (但單位為像素單位)。工作區來源是指工作區的左上角 (至少在啟用時)。該圖示從 BlocklyDiv 的左上角開始,因此不會位於工具箱下方。

如果啟用工作區,檢視畫面左側和工作區來源位於同一個 X 位置。隨著畫布向畫面右側滑動,這個值 (scrollX) 會變得比較正數,而與工作區來源相比, viewLeft 也會變得更為負數 (假設工作區起點是畫布移動時從右邊滑動的一個點)。

因此,如果 ScrollX 包含絕對向左元素,這時候就會產生「反向移動」工作區來源這表示 viewLeft 會代表 BlocklyDiv 的左側邊緣,而不是工作區的左側邊緣。

scrollY 數字

目前以像素單位為基準的垂直捲動位移 (相對於工作區來源)。

顧名思義,在檢視區塊下方以及移動的畫布上,會很有幫助。畫布向下移動時,這個值會變得比較正面,檢視畫面也變為「看見」畫布的上半部畫布往上移動,這個值會變得負值,且檢視畫面變為「看見」畫布的下半部

這個值令人困惑,表示該值沒有,且不得包含絕對 Top 偏移。這是因為系統會使用此值來計算 viewTop 值。

viewTop 與工作區來源 (採用像素單位相同) 是相對的。工作區來源是指工作區的左上角 (至少在啟用時)。該圖示從 BlocklyDiv 的左上角開始,因此不會位於工具箱下方。

啟用工作區時,檢視畫面頂端和工作區來源位於同一個 Y 位置。隨著畫布向底部滑動 (scrollY) 這個值會變得比較正數,且與工作區來源相比 (畫布原始圖片中的圖片,畫佈在畫布移動時,畫布原始圖片會隨著畫布移動時,此值會逐漸滑入底部) 的正面效果 (scrollY)。

因此,如果捲動 Y 要包含絕對頂端,這樣就會「反向移動」工作區來源這表示 viewTop 會代表 BlocklyDiv 的頂部邊緣,而不是工作區的頂端邊緣。

startScrollX 數字 以像素單位為單位捲動時的水平捲動值。
startScrollY 數字 以像素單位為單位捲動時的垂直捲動值。
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
垃圾桶 垃圾桶 |空值 工作區的垃圾桶 (如有)。
zoomControls_ ZoomControls |空值

方法

方法 修飾符 說明
addTopBlock(block) 在熱門區塊清單中加入封鎖條件。
addTopBoundedElement(element) 將受限元素新增至最邊界的元素清單。
addTopComment(comment) 將留言新增至熱門留言清單。
centerOnBlock(id, blockOnly) 捲動工作區,將工作區置於指定區塊中央。如果區塊下方還有其他區塊,除非 blockOnly 為 true,否則工作區會置中顯示在堆疊中央。
cleanUp() 將資料欄中的所有區塊排序,清理工作區。
clear() 丟棄工作區中的所有區塊,並進行最佳化以防止調整大小。
createDom(opt_backgroundClass, injectionDiv) 建立 workspace DOM 元素。
createVariable(name, opt_type, opt_id) 以指定名稱建立新變數。更新浮動式訊息,立即顯示新的變數。
deleteVariableById(id) 按照傳入的 ID 刪除變數。請更新飛輪,立即顯示變數已刪除。
dispose() 丟棄這個工作區。與所有 DOM 元素取消連結,防止記憶體流失。
getAllBlocks(ordered) 在工作區尋找所有區塊。封鎖條件可視需要根據位置排序;由上至下 (略微 LTR 或 RTL 偏誤)。
getAudioManager() 取得這個工作區的音訊管理工具。
getBlockById(id) 在這個工作區中找出含有指定 ID 的區塊。
getBlocksBoundingBox() 計算工作區區塊的定界框。座標系統:工作區座標。
getBubbleCanvas() 取得構成泡泡介面的 SVG 元素。
getButtonCallback(key) 取得與指定鍵相關聯的回呼函式,用於即時輸出中按鈕和標籤的點擊。
getCanvas() 取得構成繪圖介面的 SVG 元素。
getComponentManager() 取得這個工作區的元件管理工具。
getCursor() 這個工作區的遊標。
getDragTarget(e) 傳回指標事件所在的拖曳目標。
getFlyout(opt_own) 與這個工作區相關聯飛出的 getter。視工具箱設定而定,這個轉盤可能是由工具箱或工作區擁有。如果沒有起飛,將變為空值。
getGrid() 取得這個工作區的格線物件;如果沒有,則取得空值。
getInverseScreenCTM() 反轉螢幕 CTM 的 getter。
getLayerManager()
getMarkerManager() 取得這個工作區的標記管理工具。
getMetricsManager() 取得這個工作區的指標管理工具。
getParentSvg() 取得含有這個工作區的 SVG 元素。注意:我們假設只有在工作區插入 DOM 後才呼叫。
getRenderer() 將區塊轉譯器附加至這個工作區。
getRootWorkspace()
getScale() 取得工作區的縮放係數。如果工作區有父項,我們會呼叫父項來取得工作區調整比例。
getSvgGroup() 傳回工作區的 SVG 群組。
getTheme() 取得 Workspace 主題物件。
getToolbox() 與此工作區相關聯的工具箱的 getter (如果有的話)。
getToolboxCategoryCallback(key) 取得與指定鍵相關聯的回呼函式,以在這個工作區中填入自訂工具箱類別。
getTopBlocks(ordered) 尋找並傳回頂層區塊。封鎖條件可視需要根據位置排序;由上至下 (略微 LTR 或 RTL 偏誤)。
getTopBoundedElements() 找出並傳回頂層受限元素。
getWidth() 傳回工作區的水平偏移。適用於 XML 中的 LTR/RTL 相容性。
hideChaff(onlyClosePopups) 關閉工具提示、內容選單、下拉式選單選項等。
hideComponents(onlyClosePopups) 隱藏所有自動隱藏的元件,例如飛輪、垃圾桶和任何使用者註冊的元件。
highlightBlock(id, opt_state) 醒目顯示或取消醒目顯示工作區中的區塊。區塊醒目顯示功能通常是用來視覺化標示目前執行的區塊。
isDraggable() 這個工作區可以拖曳嗎?
isDragging() 使用者目前是否拖曳方塊或捲動彈出式/工作區?
isMovable()

這個工作區可以移動嗎?

也就是說,使用者可透過輸入內容調整工作區的 X Y 座標。可以包括捲軸、滾輪、拖曳,或是用滾輪或用雙指撥動縮放 (因為縮放是以滑鼠位置為中心)。這不包括使用縮放控制項進行縮放,因為 X Y 座標是透過程式決定。

isMovableHorizontally() 這個工作區可以水平移動嗎?
isMovableVertically() 這個工作區是否可垂直移動?
isVisible() 可見的 getter
markFocused() 將這個工作區標示為目前聚焦的主要工作區。
moveDrag(e) 在這個工作區追蹤物件的拖曳動作。
newBlock(prototypeName, opt_id) 取得新建立的區塊。
newComment(id) 取得新建立的註解。
recordDragTargets() 列出這個工作區的所有刪除區域。
refreshTheme() 主題更新後,請重新整理工作區的所有區塊。
registerButtonCallback(key, func) 註冊與指定鍵相關聯的回呼函式,用於在使用者飛出時點選按鈕和標籤。舉例來說,XML 指定的按鈕必須與對 RegisterButtonCallback("CREATE_VARIABLE", yourCallbackFunction) 的呼叫進行比對。
registerToolboxCategoryCallback(key, func) 註冊與指定鍵相關聯的回呼函式,以在這個工作區中填入自訂工具箱類別。請參閱變數和程序類別範例。
removeButtonCallback(key) 移除飛射中按鈕點選的回呼。
removeToolboxCategoryCallback(key) 移除工具箱中自訂類別名稱點擊的回呼。
removeTopBlock(block) 從頂端封鎖條件清單中移除封鎖條件。
removeTopBoundedElement(element) 從邊界元素清單中移除受限元素。
removeTopComment(comment) 從熱門留言清單中移除留言。
renameVariableById(id, newName) 在變數對應中更新變數名稱,藉此重新命名變數。更新浮動式訊息,立即顯示重新命名的變數。
render() 在工作區中轉譯所有區塊。
resize() 調整所有工作區 Chrome (工具箱、垃圾桶、捲軸等) 的尺寸及位置。如果變更項目需要重新計算垃圾桶、縮放、工具箱等的尺寸和位置 (例如視窗大小),則應呼叫此項目。
scrollCenter() 將工作區置中。
setResizeHandlerWrapper(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() 如果可以,請配合工作區調整方塊大小。