BlockSvg 類別
區塊 SVG 表示法的類別。通常不會直接呼叫,建議使用 workspace.newBlock()。
Signature:
export declare class BlockSvg extends Block implements IBoundedElement, IContextMenu, ICopyable<BlockCopyData>, IDraggable, IDeletable, IFocusableNode
擴充: Block
實作項目: IBoundedElement、IContextMenu、ICopyable<BlockCopyData>、IDraggable、IDeletable、IFocusableNode
建構函式
| 建構函式 | 修飾符 | 說明 |
|---|---|---|
| (constructor)(workspace, prototypeName, opt_id) | 建構 BlockSvg 類別的新例項 |
屬性
| 屬性 | 修飾符 | 類型 | 說明 |
|---|---|---|---|
| COLLAPSED_WARNING_ID |
|
(未聲明) | 提供「已收合的警告」警告的 ID。讓我們移除「已收合的警告」警告,而不移除屬於該區塊的任何警告。 |
| customContextMenu? | (p1: Array<ContextMenuOption | LegacyContextMenuOption>) => void | (選用) | |
| 分解? | (p1: Workspace) => BlockSvg | (選用) | |
| height | 數字 | 這個區塊的高度,不包括上方或下方的任何陳述式區塊。高度以工作區單位表示。 | |
| INLINE |
|
(未聲明) | 用於識別要內嵌顯示的資料列。請勿與 Blockly.inputTypes 發生衝突。 |
| mutator | MutatorIcon | null | 積木的變異器圖示 (如有)。 | |
| nextConnection | RenderedConnection | ||
| outputConnection | RenderedConnection | ||
| previousConnection | RenderedConnection | ||
| rendered | readonly |
(未聲明) | 這個區塊是否為 BlockSVG? |
| saveConnections? | (rootBlock: BlockSvg) => void | (選用) 這個選用方法會儲存與這個區塊連結的區塊記錄,以便在重新組合 (重新設定) 這個區塊後還原這些區塊。通常會記錄變異器彈出式視窗中屬性的連結區塊,以便在重組這個區塊後,重新排列這些元件區塊時,自動重新排列這個區塊上對應的連結區塊。 為確保儲存的連線資訊為最新狀態,MutatorIcon 會安排事件監聽器,在突變器浮動視窗開啟時,以及這個區塊的工作區發生變更時,呼叫這個方法。 |
|
| style | BlockStyle | ||
| width | 數字 | 這個區塊的寬度,包括任何已連結的值區塊。寬度以工作區單位表示。 | |
| workspace | WorkspaceSvg |
方法
| 方法 | 修飾符 | 說明 |
|---|---|---|
| addClass(className) | 為這個區塊的 SVG 群組新增 CSS 類別。 | |
| addIcon(icon) | ||
| addSelect() | 在區塊中加入「選取」視覺效果,但不會實際選取區塊或觸發事件。 | |
| appendInput(input) | ||
| bringToFront(blockOnly) | 將這個方塊移至可見工作區的前方。 |
|
| bumpNeighbours() | 將未連線的方塊撞開。 如果兩個並未實際連線的方塊在畫面上對齊,會造成使用者混淆,因此不應發生這種情況。 |
|
| calculateContextMenuLocation(e) | protected |
取得要顯示這個區塊內容選單的位置。如果點選了區塊,請使用點選位置;否則請使用區塊欄位的位置。 |
| canBeFocused() | 請參閱 IFocusableNode.canBeFocused。 | |
| checkAndDelete() | 刪除區塊並隱藏無用資料。如果區塊位於彈出式視窗中,則不會遭到刪除。這會從內容選單和鍵盤快速鍵呼叫,做為完整的刪除動作。如果從工作區捨棄的方塊不需要執行彈出式視窗檢查、處理事件分組或隱藏無用方塊,請直接使用 block.dispose()。 |
|
| dispose(healStack, animate) | 處置這個積木。 | |
| disposeInternal() | 處置這個區塊,但不執行頂端區塊所需的事項。例如觸發 UI 效果、移除節點等。 | |
| drag(newLoc, e) | 將方塊拖曳至指定位置。 | |
| endDrag(e) | 結束區塊的拖曳作業。 | |
| generateContextMenu(e) | protected |
為這個區塊生成內容選單。 |
| getBoundingRectangle() | 傳回描述這個區塊和下方任何堆疊區塊維度的定界框座標。座標系統:工作區座標。 | |
| getBoundingRectangleWithoutChildren() | 傳回描述這個區塊本身尺寸的定界框座標。座標系統:工作區座標。 | |
| getChildren(ordered) | 找出直接巢狀內嵌在這個區塊中的所有區塊。包括值和陳述式輸入內容,以及任何後續陳述式。輸出分頁或任何先前的陳述式中的連線除外。區塊可依位置排序 (由上至下)。 | |
| getColour() | 取得區塊的顏色。 | |
| getColourSecondary() | 取得區塊的次要顏色。 | |
| getColourTertiary() | 取得區塊的第三種顏色。 | |
| getFocusableElement() | 請參閱 IFocusableNode.getFocusableElement。 | |
| getFocusableTree() | 請參閱 IFocusableNode.getFocusableTree。 | |
| getNextBlock() | 傳回直接連結至這個區塊的下一個陳述式區塊。 | |
| getPreviousBlock() | 傳回與先前連線相連的區塊。 | |
| getRelativeToSurfaceXY() | 以工作區單位傳回這個區塊左上角的座標,相對於繪圖表面的原點 (0,0)。如果區塊位於工作區,(0, 0) 是工作區座標系統的原點。這項限制不會因工作區規模而異。 | |
| getStyle() | 傳回用於設定這個區塊樣式的 BlockStyle 物件。 | |
| getSvgRoot() | 傳回 SVG 的根節點,如果不存在則傳回 null。 | |
| initSvg() | 建立並初始化區塊的 SVG 呈現方式。可以多次呼叫。 | |
| isCopyable() | 傳回這個區塊是否可複製。 | |
| isMovable() | 傳回這個區塊是否可移動。 | |
| jsonInit(json) | ||
| markDirty() | 通知這個區塊的每個輸入內容,將其欄位標示為已變更。需要重新算繪的欄位稱為髒欄位。 | |
| moveBy(dx, dy, reason) | 以相對位移量移動區塊。 | |
| moveNumberedInputBefore(inputIndex, refIndex) | 將編號輸入內容移至這個區塊的其他位置。 | |
| moveTo(xy, reason) | 將方塊移至特定位置。 | |
| onNodeBlur() | 請參閱 IFocusableNode.onNodeBlur。 | |
| onNodeFocus() | 請參閱 IFocusableNode.onNodeFocus。 | |
| removeClass(className) | 從這個區塊的 SVG 群組中移除 CSS 類別。 | |
| removeIcon(type) | ||
| removeInput(name, opt_quiet) | 從這個方塊中移除輸入內容。 | |
| removeSelect() | 從區塊中移除「選取」視覺效果,但不會實際取消選取或觸發事件。 | |
| render() | 根據內容和設定,立即排版及重排區塊。 | |
| revertDrag() | 將方塊移回拖曳開始時的位置。 | |
| scheduleSnapAndBump() | 貼齊格線,然後在下一次算繪結束時,將相鄰的方塊移開。 | |
| select() | 選取這個方塊。以視覺化方式醒目顯示區塊。 | |
| setCollapsed(collapsed) | 設定是否要摺疊區塊。 | |
| setColour(colour) | 變更方塊的顏色。 | |
| setDeletable(deletable) | 如果無法刪除積木,請新增 blocklyNotDeletable 類別;如果可以刪除積木,請移除類別 | |
| setDisabledReason(disabled, reason) | 新增或移除封鎖功能可能停用的原因。如果區塊有任何停用原因,則該區塊本身會視為停用。封鎖功能可能會因多個獨立原因而同時停用,例如使用者手動停用封鎖功能,或封鎖功能無效。 | |
| setDragStrategy(dragStrategy) | 為這個區塊設定拖曳策略。 | |
| setEditable(editable) | 設定這個區塊是否可編輯。 | |
| setHighlighted(highlighted) | 設定是否要醒目顯示區塊。區塊醒目顯示功能通常用於以視覺化方式標示目前執行的區塊。 | |
| setInputsInline(newBoolean) | 設定值輸入內容的排列方式為水平或垂直。 | |
| setMovable(movable) | 設定這個方塊是否可移動。 | |
| setMutator(mutator) | 為這個區塊提供變異器對話方塊。 | |
| setNextStatement(newBoolean, opt_check) | 設定這個積木底部是否可接上其他積木。 | |
| setOutput(newBoolean, opt_check) | 設定這個方塊是否會傳回值。 | |
| setPreviousStatement(newBoolean, opt_check) | 設定這個區塊是否可以鏈結到另一個區塊的底部。 | |
| setStyle(blockStyleName) | 設定區塊的樣式和顏色值。 | |
| setWarningText(text, id) | 設定這個區塊的警告文字。 | |
| snapToGrid() | 將這個方塊對齊最近的格線點。 | |
| startDrag(e) | 開始拖曳區塊。 | |
| toCopyData() | 編碼區塊以供複製。 | |
| toFlyoutInfo() | 傳回這個區塊的表示法,可在彈出式視窗中顯示。 | |
| translate(x, y) | 方法是為區塊的 SVG 轉換屬性設定平移,藉此轉換區塊。 | |
| unselect() | 取消選取這個區塊。取消醒目顯示區塊。 |