blockly > Block

區塊類別

一個區塊的類別。通常不會直接呼叫,建議使用 workspace.newBlock()。

Signature:

export declare class Block 

建構函式

建構函式 修飾符 說明
(constructor)(workspace, prototypeName, opt_id) 建構 Block 類別的新例項

屬性

屬性 修飾符 類型 說明
childBlocks_ protected this[]
collapsed_ protected 布林值
COLLAPSED_FIELD_NAME

static

readonly

字串 給予折疊欄位的語言中立 ID。
COLLAPSED_INPUT_NAME

static

readonly

字串 給予已摺疊輸入內容的語言中立 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) 將這個區塊從上層區塊中拔除。如果這個區塊是陳述式,可選擇將底下的區塊與頂端的區塊重新連結。