blockly >blockRendering >RenderInfo

blockRendering.RenderInfo 类

一个对象,包含绘制此砌块所需的所有大小信息。

此测量遍历不会将更改传播到块(尽管字段可能会选择在调用 getSize() 时重新渲染)。但是,重复调用它的开销可能会很大。

Signature:

export declare class RenderInfo 

构造函数

构造函数 修饰符 说明
(structor)(renderer, block) 构造 RenderInfo 类的新实例

属性

属性 修饰符 类型 说明
block_ BlockSvg
bottomRow BottomRow
constants_ protected ConstantProvider
高度 number 已渲染块(包括子块)的高度。
inputRows InputRow[] 块上的输入行数组。
isCollapsed 布尔值
isInline 布尔值
isInsertionMarker 布尔值
outputConnection OutputConnection |null
renderer_

protected

readonly

渲染程序 正在使用的块渲染程序。
[] 包含大小信息的 Row 对象数组。
RTL 布尔值
startX number
startY number
statementEdge number
topRow TopRow
宽度 number 已渲染块的宽度,不包括子块。这是从 LTR 渲染时块的右边缘。
widthWithChildren number 已渲染块的宽度,包括子块。

方法

方法 修饰符 说明
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_(row, elem) protected 计算呈现行中某个元素的中心线。此基本实现将中心线垂直置于行的中间,没有特殊情况。您可能需要额外的逻辑来处理(至少)顶部和底部行。
getInRowSpacing_(上一页, 下一页) 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.Input 之间开始新行。