欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Cesium区分单击【LEFT_CLICK】和双击事件【LEFT_DOUBLE_CLICK】

程序员文章站 2022-07-11 18:54:13
在cesium中,用户鼠标左键双击视图或Entity时,实际触发的是两次click和一次dbclick事件,非常影响代码设计,本文记录了如何区分单击【LEFT_CLICK】和双击事件【LEFT_DOUBLE_CLICK】的代码及原理方法。 ......

问题描述

在cesium中,用户鼠标左键双击视图或entity时,实际触发的是两次click和一次dbclick事件,非常影响代码设计,本文记录了如何区分单击【left_click】和双击事件【left_double_click】的代码及原理方法。

具体代码

var timer= null;
var handler = new cesium.screenspaceeventhandler(viewer.scene.canvas);
handler.setinputaction(function(movement){
    cleartimeout(timer);
    timeoutid= window.settimeout(function(){
      console.log('左键单击事件:',click.position); //这里处理单击事件代码
    }, 200);
},cesium.screenspaceeventtype.left_click);
     
handler.setinputaction(function(movement){    
    cleartimeout(timer);    
}, cesium.screenspaceeventtype.left_double_click );

代码解析

单击:用户单击 - 清除定时器 - 定时器赋值 - 200ms后执行相应单击代码 - 单击事件完成。
双击:用户双击 - 进入到单击事件 - 清除定时器 - 定时器赋值 - 200ms后执行相应单击代码 - 进入到双击事件 - 清楚定时器 - 单击事件代码取消执行。