區塊類別
一個區塊的類別。通常不會直接呼叫,建議使用 workspace.newBlock()。
Signature:
export declare class Block
建構函式
| 建構函式 | 修飾符 | 說明 |
|---|---|---|
| (constructor)(workspace, prototypeName, opt_id) | 建構 Block 類別的新例項 |
屬性
| 屬性 | 修飾符 | 類型 | 說明 |
|---|---|---|---|
| childBlocks_ | protected |
this[] | |
| collapsed_ | protected |
布林值 | |
| COLLAPSED_FIELD_NAME |
|
字串 | 給予折疊欄位的語言中立 ID。 |
| COLLAPSED_INPUT_NAME |
|
字串 | 給予已摺疊輸入內容的語言中立 ID。 |
| colour_ | protected |
字串 | 以「#RRGGBB」格式表示的區塊顏色。 |
| compose? | (rootBlock: Block) => void | (選用) 選用方法,可根據變異子對話方塊中的內容重新設定區塊。 | |
| contextMenu | 布林值 | ||
| data | string | null | 在區塊和 XML 之間來回傳輸的選用文字資料。沒有影響 第三方可能會使用這項資訊來取得中繼資訊。 | |
| decompose? | (workspace: Workspace) => Block | (選用) 這個選用函式會在變更器彈出式視窗中填入代表此區塊設定的區塊。 | |
| destroy? | () => void | (選用) 在處置期間呼叫的可選方法。 | |
| disposing | protected |
布林值 | 目前的區塊是否正在處置中? |
| domToMutation? | (p1: Element) => void | (選用) 選用的反序列舉方法,用於定義如何從 XML 反序列舉突變狀態。這必須與定義 mutationToDom 搭配使用。 |
|
| getDeveloperVariables? | () => string[] | (選用) 用於宣告開發人員變數的選用方法,供產生器使用。開發人員變數不會向使用者顯示,但會在產生的程式碼中宣告為全域變數。 | |
| 帽子? | 字串 | (選用) 帽子類型名稱。 | |
| helpUrl | string | (() => string) | null | 用於區塊說明的字串,或傳回網址的函式。如未提供協助,則為空值。 | |
| 圖示 | IIcon[] | ||
| id | 字串 | ||
| init? | () => void | (選用) 在初始化期間呼叫的選用方法。 | |
| inputList | 輸入[] | ||
| inputsInline? | 布林值 | (選用) | |
| inputsInlineDefault? | 布林值 | (選用) | |
| isInFlyout | 布林值 | ||
| isInMutator | 布林值 | ||
| isInsertionMarker_ | protected |
布林值 | 如果這個區塊是插入標記,則為「是」。 |
| loadExtraState? | (p1: any) => void | (選用) 選用的序列化方法,用於定義如何從與 JSON 相容的內容中,將區塊的額外狀態 (例如變異狀態) 反序列化。這必須與定義 saveExtraState 搭配使用。 |
|
| mutationToDom? | (...p1: any[]) => Element | (選用) 選用的序列化方法,用於定義如何將突變狀態序列化為 XML。這必須與定義 domToMutation 搭配使用。 |
|
| nextConnection | 連線 | 空值 | ||
| onchange? | ((p1: Abstract) => void) | null | (選用) 當區塊的父項工作區變更時,可使用的選用回呼方法。這個函式通常只會從建構函式、區塊類型初始化函式或擴充功能初始化函式中呼叫。 | |
| outputConnection | 連線 | 空值 | ||
| outputShape_ | protected |
number | null | |
| parentBlock_ | protected |
this | null | |
| previousConnection | 連線 | 空值 | ||
| 算繪 | readonly |
布林值 | 這個區塊是否為 BlockSVG? |
| RTL | 布林值 | ||
| saveExtraState? | (doFullSerialization?: boolean) => any | (選用) 選用的序列化方法,用於定義如何將區塊的額外狀態 (例如變異型狀態) 序列化為與 JSON 相容的內容。這必須與定義 loadExtraState 搭配使用。 |
|
| styleName_ | protected |
字串 | 區塊樣式的名稱。 |
| suppressPrefixSuffix | boolean | null | 可選屬性,用於抑制在產生的程式碼中加入 STATEMENT_PREFIX 和 STATEMENT_SUFFIX。 | |
| 工具提示 | Tooltip.TipInfo | ||
| type | 字串 | ||
| workspace | Workspace |
方法
| 方法 | 修飾符 | 說明 |
|---|---|---|
| addIcon(icon) | 將指定圖示新增至區塊。 | |
| allInputsFilled(opt_shadowBlocksAreFilled) | 遞迴檢查是否已使用區塊填入所有陳述式和值輸入內容。也會檢查此堆疊中的所有後續陳述式區塊。 | |
| appendDummyInput(name) | 附加虛擬輸入列。 | |
| appendEndRowInput(name) | 附加結束資料列的輸入內容。 | |
| appendInput(input) | 附加指定的輸入資料列。 允許自訂輸入內容附加至區塊。 |
|
| appendStatementInput(name) | 附加陳述式輸入列。 | |
| appendValueInput(name) | 附加值輸入列。 | |
| bumpNeighbours() | 將未連結的區塊推離對齊位置。兩個實際上未連結的區塊不應在螢幕上巧合地排列。 | |
| dispose(healStack) | 處置這個區塊。 | |
| disposeInternal() | protected |
在不執行頂層區塊所需操作的情況下,釋放此區塊。例如不會觸發事件、拔除區塊等。 |
| doInit_() | protected |
呼叫 init() 函式,並處理相關事件觸發等作業。 |
| getChildren(ordered) | 找出直接嵌套在這個區塊內的所有區塊。包括值和陳述式輸入內容,以及後續的任何陳述式。不包含輸出分頁或任何前置陳述式中的任何連線。區塊可選擇依位置排序,由上到下排列。 | |
| getColour() | 取得區塊的顏色。 | |
| getCommentText() | 傳回這個區塊的註解 (如果沒有註解,則傳回 null)。 | |
| getDescendants(ordered) | 找出直接或間接嵌套在這個區塊內的所有區塊。將這個區塊加入清單中。包括值和陳述式輸入內容,以及後續的任何陳述式。排除輸出分頁或任何前置陳述式中的任何連線。區塊可選擇依位置排序,由上到下排列。 | |
| getDisabledReasons() | 取得目前停用區塊的一系列原因 (如有)。如果啟用封鎖,這個集合就會是空的。 | |
| getField(name) | 傳回區塊中的命名欄位。 | |
| getFields() | 傳回產生器,提供區塊上的每個欄位。 可用於對區塊上的欄位進行疊代作業的產生器。 |
|
| getFieldValue(name) | 傳回指定欄位的語言中立值。 | |
| getHue() | 取得區塊的 HSV 色相值。如果未設定色調,則為空值。 | |
| getIcon(type) | ||
| getIcons() | ||
| getInheritedDisabled() | 取得是否因家長而停用封鎖功能。系統不會考量區塊本身的 disabled 屬性。 | |
| getInput(name) | 擷取命名輸入物件。 | |
| getInputsInline() | 取得值輸入內容是水平或垂直排列。 | |
| getInputTargetBlock(name) | 擷取已附加至命名輸入內容的區塊。 | |
| getInputWithBlock(block) | 傳回連結至指定區塊的輸入內容。 | |
| getNextBlock() | 傳回與此區塊直接連結的下一個陳述式區塊。 | |
| getOutputShape() | 取得區塊的輸出形狀。 | |
| getParent() | 如果這個區塊位於頂層,則傳回父項區塊,否則傳回空值。父項區塊是指連結至先前連線的區塊 (陳述式區塊),或是連結至輸出連線的區塊 (值區塊)。 | |
| getPreviousBlock() | 傳回與先前連線連結的區塊。 | |
| getRelativeToSurfaceXY() | 以工作區單位,傳回此區塊相對於繪圖介面的原點 (0,0) 的左上角座標。 | |
| getRootBlock() | 傳回這個區塊樹狀結構中的最上層區塊。如果這個區塊位於頂層,則會傳回自身。 | |
| getStyleName() | 取得區塊樣式的名稱。 | |
| getSurroundParent() | 傳回包含目前區塊的父項區塊,如果這個區塊沒有包含區塊,則傳回 null。父區塊可能只是上一個陳述式,而包圍區塊則是 if 陳述式、while 迴圈等。 | |
| getTooltip() | 傳回此區塊的工具提示文字。 | |
| getVars() | 傳回此區塊參照的所有變數。 | |
| hasDisabledReason(reason) | 取得目前是否因提供的原因而停用封鎖。 | |
| hasIcon(type) | ||
| initModel() | 對區塊上的所有欄位呼叫 initModel。可以多次呼叫。必須在建立區塊後,且在首次與該區塊互動之前,呼叫 initModel 或 initSvg。互動行為包括 UI 動作 (例如點擊和拖曳) 和觸發事件 (例如建立、刪除和變更)。 | |
| isCollapsed() | 取得區塊是否已收合。 | |
| isDeletable() | 取得這個區塊是否可刪除。 | |
| isDisposed() | 傳回這個區塊是否已處置 / 刪除。 | |
| isDuplicatable() | 取得區塊是否可複製。如果複製這個區塊和子項會使這個區塊超過工作區的容量,則無法複製這個區塊。如果複製這個區塊和子項,會導致任何類型超過其 maxInstances,則這個區塊就無法複製。 | |
| isEnabled() | 取得這個區塊是否已啟用。如果沒有任何停用原因,系統就會視為啟用。即使使用者嘗試手動啟用區塊,區塊仍可能因其他原因而遭停用,例如區塊位於無效位置。 | |
| isInsertionMarker() | 取得這個區塊是否為插入標記區塊。 | |
| isOwnDeletable() | 傳回這個區塊本身是否可刪除的屬性為 true 或 false。 | |
| isOwnEditable() | 傳回這個區塊本身的編輯屬性為真或假。 | |
| isShadow() | 取得這個區塊是否為陰影區塊。 | |
| jsonInit(json) | 使用跨平台且支援國際化的 JSON 說明,初始化這個區塊。 | |
| mixin(mixinObj, opt_disableCheck) | 將 mixinObj 中的鍵/值新增至這個區塊物件。根據預設,這個方法會檢查 mixinObj 中的鍵不會覆寫區塊中的現有值,包括原型值。這可確保 mixin / 擴充功能與未來的區塊功能相容。您可以將 true 設為第二個引數,藉此停用這項檢查。 | |
| moveBy(dx, dy, reason) | 以相對偏移量移動區塊。 | |
| moveInputBefore(name, refName) | 將命名輸入內容移至這個區塊的其他位置。 | |
| moveNumberedInputBefore(inputIndex, refIndex) | 將編號輸入內容移至這個區塊的其他位置。 | |
| removeIcon(type) | 從區塊中移除 getType 與指定類型 iconType 相符的圖示。 | |
| removeInput(name, opt_quiet) | 從這個區塊中移除輸入內容。 | |
| renameVarById(oldId, newId) | 通知變數重新命名。如果 ID 與這個區塊的其中一個變數相符,請重新命名。 | |
| setCollapsed(collapsed) | 設定區塊是否已收合。 | |
| setColour(colour) | 變更區塊的顏色。 | |
| setCommentText(text) | 設定這個區塊的註解文字。 | |
| setDeletable(deletable) | 設定這個區塊是否可刪除。 | |
| setDisabledReason(disabled, reason) | 新增或移除可能導致封鎖功能停用的理由。如果區塊因任何原因而遭到停用,則區塊本身會視為已停用。封鎖功能可能會因多種獨立原因同時停用,例如使用者手動停用,或是封鎖功能無效。 | |
| setEditable(editable) | 設定這個區塊是否可供編輯。 | |
| setFieldValue(newValue, name) | 為這個區塊設定指定欄位的值。 | |
| setHelpUrl(url) | 設定這個區塊的說明網頁網址。 | |
| setInputsInline(newBoolean) | 設定值輸入內容是水平或垂直排列。 | |
| setMovable(movable) | 設定這個區塊是否可移動。 | |
| setMutator(_mutator) | 為這個區塊提供變換器對話方塊。 | |
| setNextStatement(newBoolean, opt_check) | 設定是否允許其他區塊鏈結至這個區塊的底部。 | |
| setOnChange(onchangeFn) | 設定回呼函式,以便在區塊的父項工作區變更時使用,取代先前的 onchange 處理常式。這個函式通常只會從建構函式、區塊類型初始化函式或擴充功能初始化函式中呼叫。 | |
| setOutput(newBoolean, opt_check) | 設定這個區塊是否會傳回值。 | |
| setOutputShape(outputShape) | 設定區塊的輸出形狀。 | |
| setPreviousStatement(newBoolean, opt_check) | 設定這個區塊是否可以鏈結至另一個區塊的底部。 | |
| setStyle(blockStyleName) | 設定區塊的樣式和顏色值。 | |
| setTooltip(newTip) | 設定這個區塊的工具提示。 | |
| setWarningText(_text, _opt_id) | 設定這個區塊的警告文字。 | |
| toDevString() | 這個方法會傳回字串,以開發人員術語 (類型名稱和 ID;僅限英文) 描述這個區塊。 這個屬性專供控制台記錄和錯誤使用。如果您需要使用使用者原生語言的字串 (包括區塊文字、欄位值和子區塊),請使用 toString() 函式。 |
|
| toString(opt_maxLength, opt_emptyToken) | 建立此區塊和任何子項的可讀文字表示法。 | |
| unplug(opt_healStack) | 將這個區塊從上層區塊中拔除。如果這個區塊是陳述式,可選擇將底下的區塊與頂端的區塊重新連結。 |