Twaver-HTML5基础学习(30)监听事件_network绘制监听_network视图操作监听_鼠标事件的监听

简介: 本文介绍了如何在Twaver-HTML5中监听网络视图操作事件,包括视图绘制、鼠标事件以及获取鼠标下的网元等。

监听事件

addViewListener主要用于监听视图绘制的事件

/**
 *addViewListener主要用于监听视图绘制的事件
 *network.addViewListener(function(e){console.log(e);});
 *
 */
 addViewListener: function (listener, scope, ahead) {
   
        this._viewDispatcher.add(listener, scope, ahead);
 },
 removeViewListener: function (listener, scope) {
   
        this._viewDispatcher.remove(listener, scope);
 },
 fireViewEvent: function (evt) {
   
        this._viewDispatcher.fire(evt);
 },

在创建Network和刷新Network的时候会派发视图事件,可以监听到”invalidate”、”validateStart”、”validateEnd”等。

      //addViewListener主要用于监听视图绘制的事件
        const eFun = e => {
   
            console.log(e, 'ee')
        }
        // network.addViewListener(eFun)
        // 移除监听视图绘制事件
        // network.removeViewListener(eFun)

在这里插入图片描述

addInteractionListener主要用于监听视图操作的事件

/**
 *addInteractionListener主要用于监听视图操作的事件
 *network.addInteractionListener(function(e){console.log(e);});
 *
 */
 addInteractionListener: function (listener, scope, ahead) {
   
        this._interactionDispatcher.add(listener, scope, ahead);
 },
 removeInteractionListener: function (listener, scope) {
   
        this._interactionDispatcher.remove(listener, scope);
 },
 fireInteractionEvent: function (evt) {
   
        this._interactionDispatcher.fire(evt);
 },

在Network上执行的操作都可以通过addInteractionListener监听到,TWaver内部常见的派发事件有:

/**
* 添加交互事件监听器,用于监听用户各种操作
* @id twaver.controls.ViewBase.addInteractionListener
* @param {Function} listener 回调函数
* @param {Object} [scope] 可选,回调函数的作用域,默认为null,即全局
* @param {Boolean} [ahead] 可选,是否将此监听放在最前面,默认为false
* @example viewBase.addInteractionListener(function (e) {
* console.log(e.kind, e.element);
* });
* 
* kind可以为下列值:
* createElement 创建网元
* clickElement 单击网元
* doubleClickElement 双击网元 
* clickBackground 单击背景
* doubleClickBackground 双击背景
* removeElement 删除网元
* selectAll 选中所有网元
* upSubNetwork 进入上一层子网
* enterSubNetwork 进入子网
* bundleLink 展开或合并连线捆绑
* expandGroup 展开组
* liveMoveStart 开始实时移动网元
* liveMoveBetween 正在实时移动网元
* liveMoveEnd 结束实时移动网元
* lazyMoveStart 开始延迟移动网元
* lazyMoveBetween 正在延迟移动网元
* lazyMoveEnd 结束延迟移动网元
* liveResizeStart 开始实时改变网元大小
* liveResizeBetween 正在实时改变网元大小
* liveResizeEnd 结束实时改变网元大小
* lazyResizeStart 开始延迟改变网元大小
* lazyResizeBetween 正在延迟改变网元大小
* lazyResizeEnd 结束延迟改变网元大小
* selectStart 开始框选
* selectBetween 正在框选
* selectEnd 结束框选
* liveMovePointStart 开始移动ShapeLink或ShapeNode的点
* liveMovePointBetween 正在移动ShapeLink或ShapeNode的点
* liveMovePointEnd 结束移动ShapeLink或ShapeNode的点
*/
twaver.controls.ViewBase.prototype.addInteractionListener = function (listener, scope, ahead) {
   }
松开鼠标的事件为 liveMoveEnd或lazyMoveEnd,获取网元的坐标可以用
network.getMovableSelectedElements().forEach(e){
   
    console.log(e.getLocation);
};

使用:

network.addInteractionListener(function (e) {
    console.log(e); });

从点击开始拖动到停止拖动在这里插入图片描述

监听鼠标事件

/**
 *network.getView.addEventListener(MouseEvent', function (e) {});
 *监听鼠标事件: mousedown、mousemove、mouseup、keydown等。
 */

使用:

     network.getView().addEventListener('mousedown',(e)=>{
   
            console.log(e,'mousedown')
        })
        network.getView().addEventListener('mouseup',(e)=>{
   
            console.log(e,'mouseup')
        })

在这里插入图片描述

获取鼠标下的网元

//获取鼠标下的网元
network.getView().addEventListener('mousemove',function(e){
   
    var element = network.getElementAt(e);
})

使用:

 network.getView().addEventListener('mousedown',(e)=>{
   
            var element = network.getElementAt(e);
            console.log(element.getName(),'name')
            console.log(element.getLocation(),'locatioon')
 })

在这里插入图片描述
学习参考:TWaver Documents

目录
相关文章
|
1天前
Twaver-HTML5基础学习(29)界面交互
这篇文章介绍了Twaver-HTML5中界面交互的多种模式,包括默认模式、编辑模式、创建网元模式、创建连线模式、创建形状连线模式、创建形状网元模式、触屏模式和放大镜模式,并提供了相应的代码示例。
27 11
Twaver-HTML5基础学习(29)界面交互
|
1天前
Twaver-HTML5基础学习(27)过滤器
这篇文章介绍了Twaver-HTML5中过滤器的使用,包括可见过滤器、可移动过滤器和可编辑过滤器,并通过代码示例展示了如何通过设置过滤器实现不同用户权限或网元类型的交互和视图。
18 8
Twaver-HTML5基础学习(27)过滤器
|
1天前
|
数据可视化 前端开发
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
本文介绍了如何在Twaver-HTML5中使用鹰眼(Overview)可视化视图组件,它作为Network的缩略图,允许用户通过缩略图导航Network,支持单击、双击和框选操作来控制Network视图。
10 5
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
|
1天前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(26)背景
这篇文章介绍了如何在Twaver-HTML5中设置背景,包括栅格图片、颜色、颜色渐变、基本形状以及图片与形状结合的背景类型,并提供了代码示例。
13 6
Twaver-HTML5基础学习(26)背景
|
1天前
Twaver-HTML5基础学习(35)Network中ToolTip显示Chart(视图未成功出现)
本文尝试在Twaver-HTML5的Network组件的ToolTip中显示echarts饼图,但未成功,可能与版本有关。
8 4
Twaver-HTML5基础学习(35)Network中ToolTip显示Chart(视图未成功出现)
|
1天前
|
数据可视化 前端开发 容器
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
本文介绍了如何在Twaver-HTML5中使用列表可视化视图组件(List),展示了如何创建列表、设置列表属性(如行高、间隔颜色等)、实现数据绑定和排序,以及如何通过React代码示例进行操作。
6 2
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
|
1天前
Twaver-HTML5基础学习(32)Network样式andTree样式
本文介绍了如何在Twaver-HTML5中自定义Network和Tree组件的样式,包括标签、提示、颜色、告警等。
9 2
Twaver-HTML5基础学习(32)Network样式andTree样式
|
1天前
|
前端开发
Twaver-HTML5基础学习(28)工具条(添加自定义按钮_自定义事件)
这篇文章介绍了如何在Twaver-HTML5中创建工具条,添加自定义按钮,并绑定自定义事件,包括放大、缩小、占满屏幕和重置画布大小的功能。
20 11
|
1天前
|
前端开发
Twaver-HTML5基础学习(37)network导出图片并下载
本文介绍了如何在Twaver-HTML5中将network导出为图片并提供下载,主要通过将network转换为canvas对象,然后转换为base64编码的图片进行展示和下载。
9 5
|
1天前
|
数据可视化 前端开发
Twaver-HTML5基础学习(25)网元可视化视图组件(Network)
这篇文章介绍了Twaver-HTML5中的网元可视化视图组件(Network)的层次结构,包括view、rootCanvas和topCanvas的使用方法和示例。
17 6