60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
|
(function(exports){
|
||
|
|
||
|
// Singleton
|
||
|
var Mouse = {
|
||
|
x: undefined,
|
||
|
y: undefined,
|
||
|
pressed: false,
|
||
|
update: function(){
|
||
|
|
||
|
if(Mouse.x!==undefined && Mouse.y!==undefined){
|
||
|
|
||
|
if(Mouse.lastX===undefined) Mouse.lastX=Mouse.x;
|
||
|
if(Mouse.lastY===undefined) Mouse.lastY=Mouse.y;
|
||
|
|
||
|
Mouse.velX = Mouse.x-Mouse.lastX;
|
||
|
Mouse.velY = Mouse.y-Mouse.lastY;
|
||
|
|
||
|
Mouse.lastX=Mouse.x;
|
||
|
Mouse.lastY=Mouse.y;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
};
|
||
|
exports.Mouse = Mouse;
|
||
|
|
||
|
// Event Handling
|
||
|
var onMouseMove,onTouchMove;
|
||
|
|
||
|
document.body.addEventListener("mousedown",function(event){
|
||
|
Mouse.pressed = true;
|
||
|
onMouseMove(event);
|
||
|
},false);
|
||
|
|
||
|
document.body.addEventListener("mouseup",function(event){
|
||
|
Mouse.pressed = false;
|
||
|
},false);
|
||
|
|
||
|
document.body.addEventListener("mousemove",onMouseMove = function(event){
|
||
|
Mouse.x = event.pageX;
|
||
|
Mouse.y = event.pageY - window.pageYOffset;
|
||
|
},false);
|
||
|
|
||
|
document.body.addEventListener("touchstart",function(event){
|
||
|
Mouse.pressed = true;
|
||
|
onTouchMove(event);
|
||
|
},false);
|
||
|
|
||
|
document.body.addEventListener("touchend",function(event){
|
||
|
Mouse.pressed = false;
|
||
|
},false);
|
||
|
|
||
|
document.body.addEventListener("touchmove",onTouchMove = function(event){
|
||
|
Mouse.x = event.changedTouches[0].clientX;
|
||
|
Mouse.y = event.changedTouches[0].clientY - window.pageYOffset;
|
||
|
event.preventDefault();
|
||
|
},false);
|
||
|
|
||
|
|
||
|
})(window);
|