gisthreemap
Version:
基于webGL的三维api
118 lines (114 loc) • 3 kB
JavaScript
/**
* handler 鼠标事件类
*
* 所有鼠标事件
* 管理鼠标事件
*/
class Handler{
constructor(viewer){
//初始化
this.init(viewer)
}
init(viewer){
/**
* handler
* 鼠标事件对象
*/
this.handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
/**
* 左键点击事件
*/
this.LEFT_CLICK = Cesium.ScreenSpaceEventType.LEFT_CLICK
/*
* 鼠标移动事件
*/
this.MOUSE_MOVE = Cesium.ScreenSpaceEventType.MOUSE_MOVE
/**
* 左键双击事件
*/
this.LEFT_DOUBLE_CLICK = Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK
/**
* 左键按下事件
*/
this.LEFT_DOWN = Cesium.ScreenSpaceEventType.LEFT_DOWN
/**
* 左键弹起事件
*/
this.LEFT_UP = Cesium.ScreenSpaceEventType.LEFT_UP
/**
* 中键单击事件
*/
this.MIDDLE_CLICK = Cesium.ScreenSpaceEventType.MIDDLE_CLICK
/**
* 中健按下事件
*/
this.MIDDLE_DOWN = Cesium.ScreenSpaceEventType.MIDDLE_DOWN
/**
* 中键弹起事件
*/
this.MIDDLE_UP = Cesium.ScreenSpaceEventType.MIDDLE_UP
/**
* 右键单击事件
*/
this.RIGHT_CLICK = Cesium.ScreenSpaceEventType.RIGHT_CLICK
/**
* 右键按下事件
*/
this.RIGHT_DOWN = Cesium.ScreenSpaceEventType.RIGHT_DOWN
/**
* 右键弹起事件
*/
this.RIGHT_UP =Cesium.ScreenSpaceEventType.RIGHT_UP
/**
* 滚轮事件
*/
this.WHEEL = Cesium.ScreenSpaceEventType.WHEEL
/**
* 监听事件
* @param {*} callback
* @param {*} event
*/
/**
* 计数器
*/
this.COUNTER = 0
}
Action(callback,event){
this.handler.setInputAction(function(e){callback(e);},event);
}
/**
* 监听事件
* @param {*} callback
* @param {*} event
* @param counter 计数器
* 计数器为1 callback
* 计数器为2 callback2
* 计数器 <=3 callback3
*/
Actions(callback,callback2,event,counter){
let _self = this;
this.handler.setInputAction(function(e){
if(_self.COUNTER == 0){
callback(e);
}else if(_self.COUNTER >= 2){
callback2(e);
}else{
console.log('counter is :' +counter)
}
},event);
}
/**
* 删除事件
* @param {*} event
*/
removeAction(event){
this.handler.removeInputAction(event)
}
/**
* 销毁
*/
destroy(){
this.handler.destroy()
}
}
export default Handler