【问题标题】:restart html5 animation in a given interval在给定的时间间隔内重新启动 html5 动画
【发布时间】:2014-02-24 03:53:50
【问题描述】:

我有一个 html5 画布,其中某些东西在给定时间内动画。我想做的是在一定间隔内重复此代码(“重置并重新启动”绘图)。

var canvas = $("#paper")[0];
var c = canvas.getContext("2d");

var startX = 50;
var startY = 50;
var endX = 100;
var endY = 100;
var amount = 0;
setInterval(function() {
    amount += 0.05; // change to alter duration
    if (amount > 1) amount = 1;
    c.clearRect(0, 0, canvas.width, canvas.height);
    c.strokeStyle = "black";
    c.moveTo(startX, startY);
    // lerp : a  + (b - a) * f
    c.lineTo(startX + (endX - startX) * amount, 
             startY + (endY - startY) * amount);
    c.stroke();
}, 30);​

【问题讨论】:

    标签: javascript html animation canvas drawing


    【解决方案1】:

    将 setInterval 函数分配给一个变量。然后就可以清除了

    var interval = setInterval(function () {});

    clearInterval(interval);

    在你的情况下(函数调用设置)你可以使用:

    var interval = setInterval(setup, 30);

    当你想清除它时:

    clearInterval(interval).

    【讨论】:

    • 谢谢.. 对不起;我是一个真正的新手..我目前有一个很长的函数我想重复function setup() { ... }; — 我将你的代码放在哪里?
    • 编辑了答案以更具体地满足您的需求。
    • 再次感谢.. 它有点工作 :) .. 我只是将代码放在我的设置函数之上。但是:现在一切似乎都非常缓慢,有点滞后(尽管我将间隔设置为 1000)。这正常吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2021-06-26
    相关资源
    最近更新 更多