blockly

blockly 套件

類別

類別 說明
封鎖 一個區塊的類別。通常不會直接呼叫,建議使用 workspace.newBlock()。
BlockFlyoutInflater 負責為彈出式視窗建立區塊的類別。
BlockNavigationPolicy 一組規則,可控管區塊的鍵盤導覽功能。
BlockSvg 區塊 SVG 表示法的類別。通常不會直接呼叫,建議使用 workspace.newBlock()。
ButtonFlyoutInflater 負責建立飛出視窗按鈕的類別。
CodeGenerator 程式碼產生器類別,可將積木翻譯成某種語言。
CollapsibleToolboxCategory 工具箱中可摺疊類別的類別。
ComponentManager 管理員:管理工作區中註冊的所有項目。
連結 區塊間連線的類別。
ConnectionChecker 用於檢查連線類型邏輯的類別。
ConnectionDB 連線資料庫。連線會依垂直元件的順序儲存。這樣一來,就能使用二分搜尋法,快速查閱特定區域的連線。
ConnectionNavigationPolicy 一組規則,可控管連線的鍵盤導覽功能。
ContextMenuRegistry 內容選單項目登錄的類別。這項服務的目的是要成為單例模式。您不應建立新的執行個體,只能從 ContextMenuRegistry.registry 存取這個類別。
DeleteArea 抽象類別,適用於可刪除放置在頂端的區塊或泡泡的元件。
DragTarget 抽象類別,適用於在區塊或泡泡拖曳至元件上方或放置在元件上時,具有自訂行為的元件。
FieldCheckbox 核取方塊欄位的類別。
FieldDropdown 可編輯下拉式欄位的類別。
FieldImage 區塊中圖片的類別。
FieldLabel 不可編輯且不可序列化的文字欄位類別。
FieldLabelSerializable 不可編輯的可序列化文字欄位類別。
FieldNavigationPolicy 這組規則可控管從欄位進行的鍵盤導覽。
FieldNumber 可編輯數字欄位的類別。
FieldTextInput 可編輯文字欄位的類別。
FieldVariable 變數下拉式選單欄位的類別。
FlyoutButton 下拉式選單中按鈕或標籤的類別。
FlyoutButtonNavigationPolicy 這組規則可控管飛出按鈕的鍵盤導覽功能。
FlyoutItem 在飛出視窗中顯示的項目表示法。
FlyoutMetricsManager 計算浮動視窗工作區的指標。這些指標主要用於調整飛出視窗的捲軸大小。
FlyoutNavigationPolicy 通用導覽政策,可在飛出視窗中的項目之間導覽。
FlyoutNavigator
FlyoutSeparator 代表飛出視窗中元素之間的間距。
FlyoutSeparatorNavigationPolicy 這組規則可控管從飛出式分隔線進行鍵盤導覽。這是無運算子預留位置,因為無法前往飛出式選單分隔線。
FocusableTreeTraverser IFocusableTree 實作的輔助公用程式,可協助進行常見的樹狀結構遍歷。
FocusManager

每個網頁的單例項,可管理一或多個 IFocusableTree 的 Blockly 焦點,並與 DOM 雙向同步處理這個焦點。

如要明確變更頁面上特定 Blockly 元件的輸入焦點,呼叫端應使用這個管理工具中的焦點函式。

管理員負責處理 DOM 中的焦點事件 (可能因使用者點選網頁元素而產生),並確保對應的 IFocusableNodes 會清楚標示為主動/被動醒目顯示,就像透過呼叫 focusNode() 表示一樣。

手勢 單一手勢的類別。
格線 工作區格線的類別。
HorizontalFlyout 下拉式選單的類別。
輸入功率 具有選填欄位的輸入內容類別。
InsertionMarkerPreviewer
KeyboardNavigationController KeyboardNavigationController 會處理協調 Blockly 全域鍵盤導覽行為,例如啟用/停用完整游標視覺化。
LabelFlyoutInflater 負責為浮動視窗建立標籤的類別。
LineCursor 行游標的類別。
Marker 標記的類別。這項屬性用於鍵盤導覽,可在 Blockly AST 中儲存位置。
MarkerManager 這個類別可管理工作區中的多個標記和游標。
菜單 基本選單類別。
MenuItem 代表選單中項目的類別。
MetricsManager 所有工作區指標計算的管理員。
名稱 實體名稱 (變數、程序等) 資料庫的類別。
Navigator 這個類別負責判斷焦點應在何處移動,以回應鍵盤導覽指令。
選項 剖析使用者指定的選項,並在未指定行為時使用合理的預設值。
RenderedConnection 類別,用於在畫面上顯示的方塊之間建立連線。
捲軸 純 SVG 捲軸的類別。這項技術可確保捲軸正常運作,但外觀或行為可能與系統捲軸不同。
ScrollbarPair 一對捲軸的類別。橫向和直向。
SeparatorFlyoutInflater 負責為飛出視窗建立分隔符的類別。
ShortcutRegistry 鍵盤快速鍵登錄的類別。這項服務的目的是要成為單例模式。您不應建立新的執行個體,只能透過 ShortcutRegistry.registry 存取這個類別。
主題 主題的類別。
ThemeManager 這個類別用於儲存及更新工作區的主題和 UI 元件。
Toast 這個類別可顯示及關閉臨時通知。
工具箱 工具箱的類別。建立工具箱的 DOM。
ToolboxCategory 工具箱中類別的類別。
ToolboxItem 工具箱中項目的類別。
ToolboxSeparator 工具箱分隔符的類別。工具箱上會顯示這條細細的視覺線,這個項目無法互動。
Trashcan 垃圾桶的類別。
UnattachedFieldError 代表欄位嘗試存取其區塊或區塊相關資訊時,該欄位尚未實際附加至該區塊的錯誤。
VariableMap 變數對應的類別。這包含字典資料結構,其中變數類型為鍵,變數清單為值。變數清單是鍵所指出的類型。
VariableModel 變數模型的類別。保存變數的資訊,包括名稱、ID 和類型。
VerticalFlyout 下拉式選單的類別。
Workspace 工作區的類別。這是包含區塊的資料結構。沒有 UI,可無頭建立。
WorkspaceAudio 這個類別用於載入、儲存及播放工作區的音訊。
WorkspaceDragger 工作區拖曳器的類別。滑鼠或觸控拖曳時,工作區會隨之移動。
WorkspaceNavigationPolicy 一組規則,可控管工作區的鍵盤導覽功能。
WorkspaceSvg 工作區的類別。這是螢幕上的區域,可選用垃圾桶、捲軸、泡泡和拖曳功能。
ZoomControls 縮放控制項的類別。

抽象類別

抽象類別 說明
欄位 可編輯欄位的抽象類別。
Flyout 下拉式選單的類別。

列舉

Enumeration 說明
ConnectionType 連線或輸入類型的列舉。

函式

函式 說明
getFocusManager() FocusManager.getFocusManager 的便利函式。
hasBubble(obj) 型別防護,可檢查指定物件是否為 IHasBubble。
hideChaff(opt_onlyClosePopups) 關閉工具提示、內容選單、下拉式選單選項等。
inject(container, opt_options) 將 Blockly 編輯器插入指定的容器元素 (通常是 div)。
isCopyable(obj)
isDeletable(obj) 傳回指定物件是否為 IDeletable。
isDraggable(obj) 傳回指定物件是否為 IDraggable。
isIcon(obj) 型別防護,可檢查指定物件是否為 IIcon。
isPaster(obj)
isRenderedElement(obj)
isSelectable(obj) 檢查指定物件是否為 ISelectable。
isSerializable(obj) 型別防護,可檢查指定物件是否為 ISerializable。
isVariableBackedParameterModel(param) 傳回指定物件是否為變數保留位置。
navigateBlock(current, delta) 傳回相對於所提供區塊子項的下一個可導覽項目。
navigateStacks(current, delta) 傳回相對於指定元素堆疊的下一個/上一個堆疊。
setLocale(locale)

將語言代碼 (即本地化訊息/區塊文字等) 設為指定語言代碼。

從指令碼標記載入時,這項功能並無用處/必要性,因為訊息會自動插入 Blockly.Msg 物件。但我們會在指令碼標記和非指令碼標記環境中提供這項資訊,以便 tscompiler 正確建立型別定義檔。

介面

介面 說明
BlocklyOptions Blockly 選項。
FieldCheckboxConfig 核取方塊欄位的設定選項。
FieldCheckboxFromJsonConfig 核取方塊欄位的 fromJson 設定選項。
FieldConfig 基本欄位的額外設定選項。
FieldDropdownFromJsonConfig 下拉式選單欄位的 fromJson 設定。
FieldImageConfig 圖片欄位的設定選項。
FieldImageFromJsonConfig 圖片欄位的 fromJson 設定選項。
FieldLabelConfig 標籤欄位的設定選項。
FieldLabelFromJsonConfig 標籤欄位的 fromJson 設定選項。
FieldNumberConfig 數字欄位的設定選項。
FieldNumberFromJsonConfig 數字欄位的 fromJson 設定選項。
FieldTextInputFromJsonConfig 文字輸入欄位的 fromJson 設定選項。
FieldVariableConfig 變數欄位的設定選項。
FieldVariableFromJsonConfig 變數欄位的 fromJson 設定選項。
IAutoHideable 可自動隱藏的元件介面。
IBoundedElement 有界元素介面。
IBubble 泡泡介面。
ICollapsibleToolboxItem 工具箱中可摺疊項目的介面。
IComponent 可向 ComponentManager 註冊的工作區元件介面。
IConnectionChecker 用於檢查連線類型邏輯的類別。
IConnectionPreviewer 顯示方塊放置位置的「預覽」畫面。
IContextMenu
ICopyable
IDeletable 可刪除物件的介面。
IDeleteArea 介面,可刪除放置在頂端的區塊或泡泡。
IDraggable 代表可拖曳的物件。
IDragger
IDragStrategy
IDragTarget 介面:當區塊或泡泡拖曳至元件上方或放置在元件上時,元件會採用自訂行為。
IFlyout 飛出式選單的介面。
IFlyoutInflater
IFocusableNode 表示可具有輸入焦點的任何項目。
IFocusableTree

代表可聚焦元素的樹狀結構,具有專屬的主動/被動焦點內容。

請注意,焦點是由 FocusManager 處理,樹狀結構實作一次最多只能有一個 IFocusableNode 焦點。如果焦點位於樹狀結構本身,則樹狀結構的焦點節點會視為「有效」(如果焦點位於其他樹狀結構,則為「無效」)。

焦點會在一個或多個樹狀結構之間共用,每個樹狀結構只能有一個主動或被動節點 (且在任何時間點,整個頁面只能有一個主動節點)。被動焦點的概念是為使用者提供背景資訊,說明焦點在導覽回先前焦點樹狀結構時會還原至何處。

請注意,如果需要樹狀結構目前焦點節點 (被動或主動),可以使用 FocusableTreeTraverser.findFocusedNode。

請注意,如要為這個樹狀結構擷取特定節點,請使用 lookUpFocusableNode 或 FocusableTreeTraverser.findFocusableNodeFor。

IHasBubble
IIcon
IKeyboardAccessible 處理鍵盤快速鍵的物件介面。
ImageProperties 使用者可讀取的圖片下拉式選單選項定義。
IMetricsManager 指標管理員的介面。
IMovable 可移動物件的介面。
INavigationPolicy 這組規則會指定鍵盤導覽的進行方向。
IPaster 可將資料貼到工作區的物件。
IPositionable 介面:位於工作區頂端的元件。
IRegistrable 可註冊的 Blockly 元件介面。
IRenderedElement
ISelectable

可選取物件的介面。

一般來說,實作項目應使用 onNodeFocus() 和 onNodeBlur() 的實作項目,分別呼叫 setSelected() 和 null,確保選取項目正確更新,並觸發選取項目變更事件。

ISelectableToolboxItem 可選取的工具箱項目介面。
ISerializable
IStyleable 可新增樣式的物件介面。
IToolbox 工具箱的介面。
IToolboxItem 工具箱中項目的介面。
IVariableBackedParameterModel 參數模型的介面,用於保存變數模型。
IVariableMap

變數對應是容器物件,負責儲存及管理工作區中參照的變數集。

這些方法可能會定義有關哪些名稱和型別合法的恆定條件,如果不符合條件,就會擲回例外狀況。

IVariableModel
IVariableState 代表特定變數的狀態。
ToastOptions 顯示/設定快顯通知的選項。

命名空間

命名空間 說明
封鎖
blockAnimations
blockRendering
browserEvents
對話框
bumpObjects
剪貼簿
CollapsibleToolboxCategory
留言
常見
ComponentManager
常數
ContextMenu
ContextMenuItems
ContextMenuRegistry
Css
對話方塊
拖曳
事件
擴充功能
fieldRegistry
geras
圖示
ICopyable
inputs
layers
libraryBlocks
MetricsManager
名稱
選項
程序
登錄
RenderedConnection
renderManagement
序列化
ShortcutItems
ShortcutRegistry
主題
ThemeManager
主題
thrasos
Toast 螢幕閱讀器朗讀訊息的積極程度選項。這些值與 aria-live 的值相同。
ToolboxCategory
ToolboxSeparator
工具提示
輕觸
uiPosition
utils
變數
VariablesDynamic
WidgetDiv
Xml
zelos

變數

變數 說明
封鎖條件 將區塊型別名稱對應至區塊原型物件。
COLLAPSE_CHARS
COLLAPSED_FIELD_NAME
COLLAPSED_INPUT_NAME
config 物件,其中包含 Blockly 上所有值,開發人員應可變更這些值。
defineBlocksWithJsonArray 從 JSON 區塊定義陣列定義區塊,這類定義可能由 Blockly 開發人員工具產生。
DELETE_VARIABLE_ID
DropDownDiv
getMainWorkspace 傳回主要工作區。傳回最後使用的主要工作區 (根據焦點)。請盡量不要使用這項函式,尤其是在網頁上有多個 Blockly 執行個體時。
getSelected 傳回目前所選的可複製物件。
INPUT_VALUE
JavaScript
keyboardNavigationController 鍵盤導覽控制器的單例執行個體。
Msg 本地化訊息的字典。
NEXT_STATEMENT
OPPOSITE_TYPE
OUTPUT_VALUE
PREVIOUS_STATEMENT
PROCEDURE_CATEGORY_NAME 用於工具箱 XML 中類別「custom」屬性的字串。這個字串表示類別應動態填入程序區塊。
RENAME_VARIABLE_ID
setParentContainer 設定父項容器。這是容器元素,WidgetDiv、dropDownDiv 和 Tooltip 會在第一次呼叫 Blockly.inject 時算繪至此元素。如果第一次 Blockly.inject 呼叫後呼叫此方法,則此方法為 NOP。
svgResize 調整 SVG 圖片大小,使其完全填滿容器。當檢視區塊實際變更大小時 (例如視窗大小調整/裝置螢幕方向變更),請呼叫這個函式。如要在內容變更時調整工作區大小 (例如新增或移除方塊時),請參閱 workspace.resizeContents。記錄 SVG 圖片的高度/寬度。
TOOLBOX_AT_BOTTOM
TOOLBOX_AT_LEFT
TOOLBOX_AT_RIGHT
TOOLBOX_AT_TOP
VARIABLE_CATEGORY_NAME 用於工具箱 XML 中類別「custom」屬性的字串。這個字串表示類別應以變數區塊動態填入。
VARIABLE_DYNAMIC_CATEGORY_NAME 用於工具箱 XML 中類別「custom」屬性的字串。這個字串表示類別應以變數區塊動態填入。
版本 Blockly 核心版本。這個常數會由建構指令碼 (npm run build) 覆寫為 package.json 中的版本值。這是由 buildCompressed gulp 工作中的 Closure 編譯器完成。如果是本機建構作業,您可以將 --define='Blockly.VERSION=X.Y.Z' 傳遞至編譯器,藉此覆寫這個常數。

型別別名

型別別名 說明
FieldCheckboxValidator 系統會呼叫此函式,在設定欄位值之前驗證變更。
FieldDropdownConfig 下拉式選單欄位的設定選項。
FieldDropdownValidator 系統會呼叫此函式,在設定欄位值之前驗證變更。
FieldNumberValidator 系統會呼叫此函式,在設定欄位值之前驗證變更。
FieldTextInputConfig 文字輸入欄位的設定選項。
FieldTextInputValidator 系統會呼叫此函式,在設定欄位值之前驗證變更。
FieldValidator 系統會呼叫此函式,在設定欄位值之前驗證變更。
FieldVariableValidator 系統會呼叫此函式,在設定欄位值之前驗證變更。
ICopyData
MenuGenerator 選單選項陣列,或是為 FieldDropdown 或其後代產生選單選項陣列的函式。
MenuGeneratorFunction 這個函式會為 FieldDropdown 或其後代產生選單選項陣列。
MenuOption 下拉式選單中的個別選項。可以是選單分隔符項目的字串常值 separator,也可以是正常動作選單項目的陣列。在後者中,第一個元素是人類可讀的值 (文字、ImageProperties 物件或 HTML 元素),第二個元素則是與語言無關的值。
ReturnEphemeralFocus

完成暫時性 UI 流程 (例如對話方塊) 時,將焦點傳回 FocusManager 的型別宣告。

詳情請參閱 FocusManager.takeEphemeralFocus。