zoukankan      html  css  js  c++  java
  • Cesium区分单击【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后执行相应单击代码 - 进入到双击事件 - 清楚定时器 - 单击事件代码取消执行。

  • 相关阅读:
    找出数组中重复的值
    算法-二分法查询
    MySQL连接数据库url的参数characterEncoding=UTF-8
    String 与 list 相互转换
    php配置debug
    ideal+php
    命令行编译tomcat项目
    jsp+layui导出excel
    jsp+ssm+tomcat+ueditor上传定时处理无用文件
    jsp后台获取项目路劲
  • 原文地址:https://www.cnblogs.com/aizai846/p/11315891.html
Copyright © 2011-2022 走看看