封鎖 >blockRendering >RenderInfo

blockRendering.RenderInfo 類別

物件,包含繪製此區塊所需的所有尺寸資訊。

這項測量過程不會將變更傳播至區塊 (雖然在呼叫 getSize() 時,欄位可以選擇重新轉譯)。不過,重複呼叫可能所費不貲。

Signature:

export declare class RenderInfo 

建構函式

建構函式 修飾符 說明
(建構函式)(轉譯器, 區塊) 建構 RenderInfo 類別的新例項

屬性

屬性 修飾符 類型 說明
block_ BlockSvg
bottomRow BottomRow
constants_ protected ConstantProvider
高度 數字 算繪區塊的高度,包括子區塊。
inputRows InputRow[] 區塊上的輸入資料列陣列。
isCollapsed 布林值
isInline 布林值
isInsertionMarker 布林值
outputConnection OutputConnection |空值
renderer_

protected

readonly

轉譯器 目前使用的區塊轉譯器。
資料列 [] 包含大小資訊的 Row 物件陣列。
RTL 布林值
startX 數字
startY 數字
statementEdge 數字
topRow TopRow
寬度 數字 算繪區塊的寬度,不含子區塊。這是算繪 LTR 時區塊的右側邊緣。
widthWithChildren 數字 算繪區塊的寬度,包括子區塊。

方法

方法 修飾符 說明
addAlignmentPadding_(row, missingSpace) protected 修改指定列,在其欄位周圍加入指定的邊框間距。邊框間距的確切位置取決於欄位中最後一個輸入的對齊屬性。
addElemSpacing_() protected 在每個資料列中的元素之間和周圍加入水平間距。
addInput_(input, ActiveRow) protected 視需要在有效列中新增輸入元素,並記錄該列的輸入類型。
addRowSpacing_() protected 在列之間加入空格字元並設定其大小。
alignRowElements_() protected 可能需要額外空格,以確保所有列的右側對齊。只有在第一次傳遞成功時,才能計算所有資料列的大小。
alignStatementRow_(row) protected 根據計算的範圍校正陳述式列的元素。與其他類型的資料列不同,陳述式列會在多個位置增加空格。
computeBounds_() protected 找出陳述式輸入區塊的右側邊緣和右側邊緣的正確位置。
createRows_() protected 為可測量的物件建立資料列,代表區塊中所有可轉譯的部分。
finalize_() protected 對轉譯資訊物件進行最終變更。請特別注意,儲存每一列的 y 位置,並記錄整個區塊的高度。
getDesiredRowWidth_(_row) protected 計算輸入列所需的寬度。
getElemCenterline_(列, elem) protected 在算繪的列中計算元素的中心線。這個基本實作會在資料列中間垂直放置中心線,沒有特殊案例。您可能需要額外的邏輯來處理頂端和底部資料列。
getInRowSpacing_(prev, next) protected 根據該列中上一個和下一個元素,計算一列的空格字元元素的寬度。舉例來說,系統會在兩個可編輯欄位之間新增額外的邊框間距。
getMeasureableForConnection(conn) 傳回與指定連線相關的可評估連線。
getRenderer() 取得使用區塊轉譯器。
getSpacerRowHeight_(_prev, _next) protected 計算空格字元的高度。
getSpacerRowWidth_(_prev, _next) protected 計算空格字元列的寬度。
makeSpacerRow_(上一個, 下一個) protected 建立空格字元列,用於切換上一個/下一個資料列,並設定其大小。
measure()

將繪製區塊所需的所有大小資訊填入此物件。

這項測量過程不會將變更傳播至區塊 (雖然在呼叫 getSize() 時,欄位可以選擇重新轉譯)。不過,重複呼叫可能會產生高額費用。

populateBottomRow_() protected 建立屬於底部資料列的所有非空格元素。
populateTopRow_() protected 建立位於第一列的所有非空格元素。
recordElemPositions_(row) protected 針對特定列的元素記錄最終位置資訊,以用於繪圖。這個記錄至少會記錄 xPos 和每個元素的中心線。
shouldStartNewRow_(currInput, prevInput) protected 決定是否要在兩個 Blockly.Inputs 之間開始新的一列。