BlockSvg 类
用于表示块的 SVG 的类。通常不直接调用,建议使用 workspace.newBlock()。
Signature:
export declare class BlockSvg extends Block implements IBoundedElement, IContextMenu, ICopyable<BlockCopyData>, IDraggable, IDeletable, IFocusableNode
扩展自: Block
实现: IBoundedElement、IContextMenu、ICopyable<BlockCopyData>、IDraggable、IDeletable、IFocusableNode
构造函数
构造函数 | 修饰符 | 说明 |
---|---|---|
(constructor)(workspace, prototypeName, opt_id) | 构造 BlockSvg 类的新实例 |
属性
属性 | 修饰符 | 类型 | 说明 |
---|---|---|---|
COLLAPSED_WARNING_ID |
|
(未声明) | 用于提供“折叠警告”警告的 ID。允许我们移除“折叠的警告”警告,而不会移除属于该块的任何警告。 |
customContextMenu? | (p1: Array<ContextMenuOption | LegacyContextMenuOption>) => void | (可选) | |
分解? | (p1: Workspace) => BlockSvg | (可选) | |
height | 数值 | 相应代码块的高度,不包括任何上方的或下方的语句代码块。高度以工作区单位表示。 | |
INLINE |
|
(未声明) | 用于标识要内嵌呈现的行的常量。不与 Blockly.inputTypes 发生冲突。 |
mutator | MutatorIcon | null | 块的 mutator 图标(如果有)。 | |
nextConnection | RenderedConnection | ||
outputConnection | RenderedConnection | ||
previousConnection | RenderedConnection | ||
rendered | readonly |
(未声明) | 相应块是否为 BlockSVG? |
saveConnections? | (rootBlock: BlockSvg) => void | (可选)一种可选方法,用于保存与此块连接的块的记录,以便在重新组合(重新配置)此块后可以恢复这些块。通常会在突变器弹出式菜单中的块上记录连接的块,以便在重组此块后,重新排列这些组件块会自动重新排列此块上相应连接的块。 为了使保存的连接信息保持最新状态,MutatorIcon 会安排一个事件监听器,以便在 mutator 弹出式菜单打开且相应块的工作区发生更改时调用此方法。 |
|
style | BlockStyle | ||
width | 数值 | 相应代码块的宽度,包括所有连接的值代码块。宽度以工作区单位表示。 | |
工作区 | WorkspaceSvg |
方法
方法 | 修饰符 | 说明 |
---|---|---|
addClass(className) | 为相应块的 SVG 组添加 CSS 类。 | |
addIcon(icon) | ||
addSelect() | 向块添加视觉“选择”效果,但实际上不会选择该块或触发事件。 | |
appendInput(input) | ||
bringToFront(blockOnly) | 将此块移到可见工作区的前面。 |
|
bumpNeighbours() | 使未连接的块错位。 实际上未连接的两个块不应在屏幕上巧合地对齐,因为这会给最终用户造成困惑。 |
|
calculateContextMenuLocation(e) | protected |
获取用于显示相应块的上下文菜单的位置。如果点击了相应块,则使用点击的位置;否则,使用基于相应块字段的位置。 |
canBeFocused() | 请参阅 IFocusableNode.canBeFocused。 | |
checkAndDelete() | 删除块并隐藏干扰数据。如果块位于弹出式菜单中,则不会被删除。此方法会从上下文菜单和键盘快捷键中调用,作为完整的删除操作。如果您要处置工作区中的某个块,并且不需要执行弹出式菜单检查、处理事件分组或隐藏干扰项,请直接使用 block.dispose() 。 |
|
dispose(healStack, animate) | 处置此块。 | |
disposeInternal() | 处置此块,但不执行顶部块所需的操作。例如,是否触发界面效果、移除节点等。 | |
drag(newLoc, e) | 将块拖动到指定位置。 | |
endDrag(e) | 结束对代码块的拖动。 | |
generateContextMenu(e) | protected |
为此块生成上下文菜单。 |
getBoundingRectangle() | 返回一个边界框的坐标,该边界框描述了相应块及其下方堆叠的任何块的尺寸。坐标系:工作区坐标。 | |
getBoundingRectangleWithoutChildren() | 返回描述此块本身尺寸的边界框的坐标。坐标系:工作区坐标。 | |
getChildren(ordered) | 查找直接嵌套在此块中的所有块。包括值和陈述输入,以及任何后续陈述。不包括输出标签页上的任何连接或任何前面的语句。块可选择按位置(从上到下)排序。 | |
getColour() | 获取块的颜色。 | |
getColourSecondary() | 获取块的辅助颜色。 | |
getColourTertiary() | 获取块的三级颜色。 | |
getFocusableElement() | 请参阅 IFocusableNode.getFocusableElement。 | |
getFocusableTree() | 请参阅 IFocusableNode.getFocusableTree。 | |
getNextBlock() | 返回与此块直接关联的下一个语句块。 | |
getPreviousBlock() | 返回与上一个连接关联的块。 | |
getRelativeToSurfaceXY() | 返回此块相对于绘图表面的原点 (0,0) 的左上角坐标(以工作区单位表示)。如果块位于工作区中,则 (0, 0) 是工作区坐标系的原点。此值不会随工作区规模而变化。 | |
getStyle() | 返回用于设置相应块样式的 BlockStyle 对象。 | |
getSvgRoot() | 返回 SVG 的根节点,如果不存在,则返回 null。 | |
initSvg() | 创建并初始化块的 SVG 表示形式。可以多次调用。 | |
isCopyable() | 返回相应块是否可复制。 | |
isMovable() | 返回相应块是否可移动。 | |
jsonInit(json) | ||
markDirty() | 通知此块上的每个输入,以将其字段标记为脏。脏字段是指需要重新渲染的字段。 | |
moveBy(dx, dy, reason) | 按相对偏移量移动块。 | |
moveNumberedInputBefore(inputIndex, refIndex) | 将带编号的输入移至此块中的其他位置。 | |
moveTo(xy, reason) | 将块移动到某个位置。 | |
onNodeBlur() | 请参阅 IFocusableNode.onNodeBlur。 | |
onNodeFocus() | 请参阅 IFocusableNode.onNodeFocus。 | |
removeClass(className) | 从相应块的 SVG 群组中移除 CSS 类。 | |
removeIcon(type) | ||
removeInput(name, opt_quiet) | 从相应块中移除输入。 | |
removeSelect() | 从块中移除视觉“选择”效果,但实际上不会取消选择该块或触发事件。 | |
render() | 根据块的内容和设置立即进行布局和重排。 | |
revertDrag() | 将块移回拖动开始时的位置。 | |
scheduleSnapAndBump() | 贴靠到网格,然后在下一次渲染结束时将相邻的块移开。 | |
select() | 选择此块。以醒目的方式突出显示代码块。 | |
setCollapsed(collapsed) | 设置块是否处于折叠状态。 | |
setColour(colour) | 更改块的颜色。 | |
setDeletable(deletable) | 当 block 不可删除时,添加 blocklyNotDeletable 类;当 block 可删除时,移除该类 | |
setDisabledReason(disabled, reason) | 添加或移除了可能导致屏蔽功能被停用的原因。如果某个块有任何停用原因,则该块本身将被视为已停用。屏蔽可能会因多种独立原因而同时被停用,例如用户手动停用屏蔽或屏蔽无效。 | |
setDragStrategy(dragStrategy) | 为此块设置拖动策略。 | |
setEditable(editable) | 设置相应块是否可编辑。 | |
setHighlighted(highlighted) | 设置是否突出显示块。代码块突出显示功能通常用于直观地标记当前正在执行的代码块。 | |
setInputsInline(newBoolean) | 设置值输入是横向排列还是纵向排列。 | |
setMovable(movable) | 设置相应块是否可移动。 | |
setMutator(mutator) | 为该代码块提供了一个 mutator 对话框。 | |
setNextStatement(newBoolean, opt_check) | 设置是否可以在此块的底部链接另一个块。 | |
setOutput(newBoolean, opt_check) | 设置此代码块是否返回值。 | |
setPreviousStatement(newBoolean, opt_check) | 设置此块是否可以链接到另一块的底部。 | |
setStyle(blockStyleName) | 设置块的样式和颜色值。 | |
setWarningText(text, id) | 设置相应块的警告文本。 | |
snapToGrid() | 将此块贴靠到最近的网格点。 | |
startDrag(e) | 开始拖动块。 | |
toCopyData() | 对块进行编码以供复制。 | |
toFlyoutInfo() | 返回可在弹出式菜单中显示的相应代码块。 | |
translate(x, y) | 通过在块的 SVG 的 transform 属性上设置平移来转换块。 | |
unselect() | 取消选择此块。以视觉方式取消突出显示相应代码块。 |