减慢循环以动画画布

时间:2012-01-16 02:49:05

标签: javascript html5 canvas

我正在尝试用画布制作一些东西,在那里我可以传入一个数字,它等于某个程度0-360,并且一条线将从其当前位置到我设置的程度进行动画制作。

现在我的线条达到了我想要的程度(我还没有完成功能部分,但是我在学位中传递...现在只是在for循环中执行它)所以我的主要问题是如何我能让动画线变慢吗?如果我只是让for循环运行它就会直接到达终点。我怎样才能减慢速度以使其动画?

代码在这里:http://jsfiddle.net/WPTjv/2/

谢谢!

编辑:我不是特别喜欢这些代码,所以如果你有更好的方法,我也很乐意接受建议。

2 个答案:

答案 0 :(得分:4)

你需要使用像setInterval这样的东西每N毫秒调用一段代码。语法是:

setInterval(code, milliseconds);

它会返回您需要保存的数字,以便您可以停止代码。所以我们可以写:

 var interval = setInterval(function() {
     clock();
     x++;
     if (x > 90) clearInterval(interval);
 }, 30);

这会创建一个每30毫秒发生一次的函数。

每30毫秒调用clock()x会增加,如果x超过90,我们会调用clearInterval并传入我们调用的号码setInterval返回了。这可以确保代码打开总共发生了90次。

这是一个实例:

http://jsfiddle.net/WPTjv/10/

答案 1 :(得分:0)