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 的焦點事件 (可能來自使用者點選網頁元素),並確保相應的 IFocusableNode 以明確的方式標示為主動/被動醒目顯示,就像透過呼叫 focusNode() 表示一樣。

手勢 單一手勢的類別。
格狀 工作區格線的類別。
HorizontalFlyout 彈出式視窗的類別。
輸入功率 含選填欄位的輸入內容類別。
InsertionMarkerPreviewer
LabelFlyoutInflater 負責建立彈出式視窗標籤的類別。
LineCursor 線條游標的類別。
Marker 標記的類別。這可用於鍵盤導覽,在 Blockly AST 中儲存位置。
MarkerManager 用於管理工作區中的多個標記和游標的類別。
菜單 基本選單類別。
MenuItem 代表選單中項目的類別。
MetricsManager 管理所有工作區指標計算作業。
名稱 實體名稱 (變數、程序等) 資料庫的類別。
Navigator 這個類別負責判斷焦點應在回應鍵盤導覽指令時移至何處。
選項 剖析使用者指定的選項,並在未指定行為的情況下使用合理的預設值。
RenderedConnection 用於連結可能在螢幕上算繪的區塊的類別。
捲軸 純 SVG 捲軸的類別。這項技巧可提供保證可正常運作的捲軸,但外觀或行為可能不像系統的捲軸。
ScrollbarPair 一對捲軸的類別。水平和垂直。
SeparatorFlyoutInflater 負責建立彈出式選單分隔符的類別。
ShortcutRegistry 鍵盤快速鍵登錄機制的類別。這應為單例模式。請勿建立新的例項,並只從 ShortcutRegistry.registry 存取此類別。
主題 主題類別。
ThemeManager 用於儲存及更新工作區主題和 UI 元件的類別。
Toast 可用於顯示及關閉暫時性通知的類別。
工具箱 Toolbox 的類別。建立工具箱的 DOM。
ToolboxCategory 工具箱中類別的類別。
ToolboxItem 工具箱中項目的類別。
ToolboxSeparator 工具箱分隔符的類別。這是工具箱中顯示的細線。這個項目無法互動。
垃圾桶 垃圾桶的類別。
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) 傳回指定物件是否為可刪除 ID 的物件。
isDraggable(obj) 傳回指定物件是否為 IDraggable。
isIcon(obj) 檢查指定物件是否為 IIcon 的類型防護。
isPaster(obj)
isRenderedElement(obj)
isSelectable(obj) 檢查指定物件是否為 ISelectable。
isSerializable(obj) 檢查指定物件是否為 ISerializable 的類型防護。
isVariableBackedParameterModel(param) 傳回指定物件是否為變數容器。
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 註冊的 Workspace 元件介面。
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
bubbles
bumpObjects
剪貼簿
CollapsibleToolboxCategory
註解
common
ComponentManager
常數
ContextMenu
ContextMenuItems
ContextMenuRegistry
Css
dialog
拖曳
事件
擴充功能
fieldRegistry
geras
圖示
ICopyable
inputs
圖層
libraryBlocks
MetricsManager
名稱
選項
程序
註冊資料庫
RenderedConnection
renderManagement
序列化
ShortcutItems
ShortcutRegistry
主題
ThemeManager
主題
thrasos
Toast 螢幕閱讀器應以何種積極程度朗讀 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
Msg 本地化訊息字典。
NEXT_STATEMENT
OPPOSITE_TYPE
OUTPUT_VALUE
PREVIOUS_STATEMENT
PROCEDURE_CATEGORY_NAME 在工具箱 XML 中,用於類別「custom」屬性的字串。這個字串表示應動態填入程序區塊的類別。
RENAME_VARIABLE_ID
setParentContainer 設定父項容器。這是容器元素,當 Blockly.inject 首次呼叫時,WidgetDiv、dropDownDiv 和 Tooltip 會算繪至此。如果在第一次 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 中的版本值。這項工作是由 Closure Compiler 在 buildCompressed gulp 工作中執行。如果是本機版本,您可以將 --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。