Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript动画有时可以工作_Javascript_Animation_Setinterval - Fatal编程技术网

javascript动画有时可以工作

javascript动画有时可以工作,javascript,animation,setinterval,Javascript,Animation,Setinterval,我试图让pacman在不使用jquery.animation的情况下移动,因为我想要更多的控制。所以我使用了setInterval,但它只在某些时候起作用。如果你刷新的足够多,它最终会“点击”并正常工作,但如果你再次刷新,它将不工作,如果你想查看它,它就在这里,谢谢 //earlier in the code this.moveInterval = setInterval(_this.move, 40, _this); move: function(_this) { if(_this.

我试图让pacman在不使用jquery.animation的情况下移动,因为我想要更多的控制。所以我使用了setInterval,但它只在某些时候起作用。如果你刷新的足够多,它最终会“点击”并正常工作,但如果你再次刷新,它将不工作,如果你想查看它,它就在这里,谢谢

//earlier in the code
this.moveInterval = setInterval(_this.move, 40, _this);

move: function(_this)
{
    if(_this.pause)//set to true for now
        return false;

    var horz = 0;
    var vert = 0;

    var dir = _this.dir;

    //set horizontal and vertical directions
    if(dir % 2 == 0)
        horz = dir - 1;
    else
        vert = dir - 2;

    _this.top += vert;
    _this.left += horz;

    $('#pacman').css('top', _this.top);
    $('#pacman').css('left', _this.left);
},

我不确定这是否能解决问题,但我建议使用而不是setInterval

我认为另一个问题(我也被这个问题刺痛了)是你可能试图在页面完全加载之前启动动画。尝试将代码放入函数中,并使用调用

祝你好运


Griffork.

但它只在某些时候起作用。对我来说,它似乎一直在“工作”,假设“工作”意味着吃豆人在页面上向下移动。是的,你也可以使用箭头键来改变方向,有时他只是坐在那里,张开和闭上嘴,他应该同时做这两件事,移动和进食。我认为,通过点击刷新按钮进行硬刷新效果更好(然后更频繁地停止)我们需要查看您注释掉的代码吗?您使用的是jQuery和Mootools?那是错误的!我在$(document.ready(function(){})中有所有内容;呼叫。我将查看请求动画帧,谢谢。我想我可能应该为此使用画布。您将我的响应标记为答案,您是否真的开始工作了?您上次的评论听起来好像您已经在做我建议的事情:)。另外,在您的主要,您应该更改行
\u this=this
var\u this=this
这样你就不会创建一个名为
\u this
的全局变量,在你的移动函数(pacman.js的第67行)中,你需要对dir进行边界检查,因为如果你按下任何不是箭头键的按钮,那么pacman就会在屏幕上飞来飞去XD。好的,很公平,仍然不起作用。看起来只有当我按F5或单击“刷新”时,它才会偶尔中断。我只是想给canvas和request animation frame一个tryOk,我只是想确保你最终得到问题的答案,人们不太可能来尝试回答这个问题,因为它已经标记为“已回答”。如果可以的话,我建议将这个问题标记为未回答(我自己不知道怎么做,我对这个网站比较陌生)。最坏的情况是你可能需要再问一次(但要重新措辞,这样你就不会回到这里)。干杯,祝你好运!格里弗克。