區塊類別
一個區塊的類別。通常不會直接呼叫,建議使用 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) | 將這個區塊從上層區塊中拔除。如果這個區塊是陳述式,可選擇將底下的區塊與頂端的區塊重新連結。 |