当用户和topology交互时,会通过回调函数,给用户发送消息通知。
使用方式1
在new Topology(id || HtmlElement, options)时,给options设置一个on的回调函数即可。
const canvasOptions = {};const onMessage = (event: string, data: any) => {console.log(event, data);}canvasOptions.on = onMessage;const canvas = new Topology('topology-canvas', canvasOptions);
使用方式2
监听消息
const subcribe = (e) => {};topology.on('addNode', subcribe);// 取消监听topology.off('addNode', subcribe)
消息列表
| event(字符串) | data | 描述 |
|---|---|---|
| opened | 打开新文件 | |
| node | Node | 选中了一个节点 |
| nodeRightClick | Node | 右击了一个节点 |
| line | Line | 选中了一条连线 |
| lineRightClick | Line | 右击了一条连线 |
| multi | { nodes: [], lines: [], } |
选中多个节点/连线 |
| space | 点击空白,清空选中对象 | |
| moveInNode | Node | 鼠标移动到节点 |
| moveOutNode | Node | 鼠标移出节点 |
| moveInLine | Line | 鼠标移动到连线 |
| moveOutLine | Line | 鼠标移出连线 |
| move | Pen[] | 移动画笔 |
| resizePens | Pen[] | 画笔大小改变 |
| rotated | Pen[] | 画笔被旋转 |
| dblclick | Pen | 双击画笔 |
| animateEnd | { type: ‘node/line’, data: node/line } |
节点或连线的动画播放完成 |
| scale | number | 缩放画布 |
| translate | { x, y } | 平移画布 |
| moveOutParent | mouse position | 按住鼠标拖曳超出父dom元素大小 |
| resize | {width, height} | 画布大小改变 |
| locked | number | 锁定画布: None (0) - 未锁定,可任意编辑。 Readonly (1) - 只读模式,允许选中 NoMove (2) - 不能移动 NoEvent (10) - 禁止鼠标交互,无法做任何操作。纯静态画面模式。 |
| delete | Pen[] | 删除节点/连线 |
| addNode | Node | 添加节点 |
| addLine | Line | 添加连线 |
| setText | 输入框输入文字 | |
| loaded | 加载 topology 后 | |
| anchor | { anchor:锚点对象, anchorIndex: 锚点索引, node:当前锚点所属节点, line: 新连线 } |
点击锚点 |
| mediaEnd | Node | 视频/音频(audio/video)播放结束 |
| websocket | websocket data | websocket 监听消息 |
| mqtt | mqtt data | mqtt 监听消息 |
| nodeCenter | Node | 自动瞄点,点击中心瞄点 |
| undo | 撤销后 | |
| redo | 恢复后 | |
| copy | 复制 | |
| paste | Pen[] | 粘贴 |
| combine | Node | 组合/包含后 |
| uncombine | Node | 取消组合/包含后 |
| tip | dom 元素 | 小提示 |
| lineOn | Line | 已有的连线重新连上锚点 lineOnDirection 连线方向: 2 From 3 To |
| addLineInLines | { previous: Line, line:Line } |
在使用钢笔工具过程中,点击添加新的连线作为钢笔全部连线的一部分。 previous 上一条子线,即已完成的子线,它的 to 即当前鼠标按下的点。 line 新创建的子线,它的 from 即当前鼠标按下的点。 |
