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

2019-08-14 10:30:12来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

问题描述

在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后执行相应单击代码 - 进入到双击事件 - 清楚定时器 - 单击事件代码取消执行。


原文链接:https://www.cnblogs.com/aizai846/p/11315891.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:前端笔记之React(八)上传&图片裁切

下一篇:JavaScript之操作符