// 마우스 업시 function _g_up(e) { if(e.button == 2) { if(_g_path in _gestures) _gestures[_g_path][1](); removeEvent(document,”mousemove”,_g_move); removeEvent(document,”mouseup”,_g_up); } }
// 컨텍스트 메뉴 방지용 리턴 막는 함수 function _g_false(e) { if(_g_path) { var e = e || event; if(e.preventDefault) e.preventDefault(); if(“returnValue” in e) e.returnValue = false; return false; } }
addEvent(document,”contextmenu”,_g_false);
// 마우스 이동시 function _g_move(e) { var e = e || event; var x = e.clientX; var y = e.clientY; var mX = x – _g_pX; var mY = _g_pY – y; var dir;
if(mX == 0) { if(mY > 0) dir = “U”; else if(mY < 0) dir = “D”; else return; } else { var slope = mY/mX; if(slope > 2 || slope < -2) { if(mY > 0) dir = “U”; else dir = “D”; } else if(slope < 0.5 && slope > -0.5) { if(mX > 0) dir = “R”; else dir = “L”; } }