我最近在我的游戏中添加了jquery.mouse2touch.min.js插件,在测试之后我遇到了一个问题。我的移动系统是由两个div组成的(一个向左移动,一个向右移动),基本上当你按住div时,玩家应该朝一个方向移动,当你放手时,他应该停下来。问题是,如果我按住太久,然后放手,球员就不会停下来。
下面是让他移动的代码:
// iControl System
var $div = $('#character');
$('#ios-left').mousedown(function(){
leftTimer = setInterval(function(){
processWalk('left');
},100);
}).mouseup(function(){
$('#character').stop();
clearInterval(leftTimer);
}).mouse2touch();
$('#ios-right').mousedown(function(){
rightTimer = setInterval(function(){
processWalk('right');
},100);
}).mouseup(function(){
$('#character').stop();
clearInterval(rightTimer);
}).mouse2touch();还有小提琴:http://jsfiddle.net/gqfesrhw/
谢谢(如果有人认为这可能是mouse2touch插件的问题,我愿意听取其他建议)
发布于 2014-11-25 01:44:39
工频
在计时器的问题上,你应该在移动前清除时间间隔.带有TimerWalk的全局变量clearInterval(TimerWalk);应该是有用的。
这里是代码块
$('#ios-left').mousedown(function () {
clearInterval(TimerWalk);
TimerWalk = setInterval(function () {
processWalk('left');
}, 100);
}).mouseup(function () {
$div.stop();
clearInterval(TimerWalk);
}).mouse2touch();
$('#ios-right').mousedown(function () {
clearInterval(TimerWalk);
TimerWalk = setInterval(function () {
processWalk('right');
}, 100);
}).mouseup(function () {
$div.stop();
clearInterval(TimerWalk);
}).mouse2touch();这只是为了适当的移动,你可能需要解决其他问题。
https://stackoverflow.com/questions/26957080
复制相似问题