blockly > LineCursor

LineCursor 类

用于线条光标的类。

Signature:

export declare class LineCursor extends Marker 

扩展自Marker

构造函数

构造函数 修饰符 说明
(constructor)(workspace) 构造 LineCursor 类的新实例

属性

属性 修饰符 类型 说明
type 字符串
工作区

protected

readonly

WorkspaceSvg

方法

方法 修饰符 说明
atEndOfLine() 当调用 in() 时将导航到的节点与调用 next() 时将导航到的节点相同时,返回 true;实际上,如果 LineCursor 位于程序“当前行”的末尾,则返回 true。
getCurNode()

获取光标的当前位置。

替换了正常的 Marker getCurNode,以根据所选块更新当前节点。这种情况通常通过选择监听器发生,但当 Gesture 调用 Blockly.common.setSelected 时,选择监听器不会立即被调用。特别是,监听器会在显示上下文菜单后运行。

getFirstNode() 获取工作区中的第一个可导航节点,如果不存在,则返回 null。
getLastNode() 获取工作区中的最后一个可导航节点,如果不存在,则返回 null。
getNextNode(node, isValid, loop) 获取 AST 中的下一个节点,可以选择性地允许环回。
getPreviousNode(node, isValid, loop) 获取 AST 中的上一个节点,可以选择允许环回。
in() 将光标移至预排序遍历中的下一个输入连接或字段。
next() 将光标移至预购遍历中的下一个块或工作区注释。
out() 将光标移至先序遍历中的上一个输入连接或字段。
postDelete() 在删除块后,将光标移至此 potentialNodes 中的第一个有效位置。
preDelete(deletedBlock)

通过列出之后可将光标移至的节点,并将其保存到 this.potentialNodes,为删除块做好准备。

删除操作完成后,调用 postDelete 将其移至该列表中的第一个有效节点。

要尝试的位置(按优先顺序排列)包括:

- 当前位置。- 已删除的块所连接到的连接。- 与已删除块的下一个连接相关联的块。- 已删除块的父块。- 工作区上已删除的块下方的某个位置。

N.B.: 删除某个块时,与该块的输入连接的所有块也会被删除,但与该块的下一个连接相连的块不会被删除。

prev() 将光标移至预购遍历中的上一个块或工作区注释。
setCurNode(newNode)

设置光标的位置并绘制光标。

替换了正常的 Marker setCurNode 逻辑,以调用 this.drawMarker() 而不是直接调用 this.drawer.draw()。