javascript - ( Canvas )每隔几秒推送一个新项目

标签 javascript html animation canvas

您好,感谢您提前提供的帮助。

我试图每隔几秒钟推送/创建一个新的“环”。我有一个带有 X 和 Y 几个变量的环。我遇到的问题是,如何获得一个新环并增加变量?我需要为每个环指定一个新的变量名称? 以下是我到目前为止所取得的进展:

http://codepen.io/hossman/pen/AfwkF

您可以在演示中看到 1 个环如何熄灭,但我希望不止 1 个环从我的眼睛中消失。例如,1 个环消失,然后等待一秒钟,然后射出另一个环,所以现在 Canvas 上有 2 个环,然后是 3 个,然后是 4 个,等等......我想到了多种方法,例如使用数组和setTimeouts,但我无法确定它。我唯一的另一个想法是创建多个具有不同名称的变量,并让每个环递增,但这不是很 D.R.Y。

有什么帮助吗?

如果我解释得不够好,请提问。再次感谢!

最佳答案

将其添加到顶部的全局变量中(并设置为您想要的圆之间的距离):

var distanceApart = 40;

然后像这样更新你的主循环:

requestAnimationFrame(function print() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);

    var leftRing = new Ring(x, y);
    var rightRing = new Ring(x2, y2);
    var temp = startRadius;
    var temp2 = 0;

    while(temp > 0){
         leftRing.draw(ctx, startRadius - temp2 , 'red');
         rightRing.draw(ctx, startRadius - temp2 , 'red');   
         temp2 = temp2 + distanceApart;
         temp = temp - distanceApart;
    }

    startRadius += increase;

    requestAnimationFrame(print);
});

在这里 fork : http://codepen.io/anon/pen/plBmj (看起来很好记!)

关于javascript - ( Canvas )每隔几秒推送一个新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20696033/

相关文章:

javascript - 显示/隐藏内联表单

html - 使用 Flexbox 将列调整为最长的单元格,就像网格一样

html - CSS 用脉冲旋转动画

javascript - 我看不到我的动画,而是看到显示和隐藏效果之类的东西?

javascript - 从下拉列表中选择值后 MVC 重新加载页面

javascript - 如何仅针对鼠标事件而不是键盘选项卡式导航删除 anchor 链接的虚线焦点轮廓?

ios - 2 秒后显示和淡化 UIImageView

javascript - 所有节点上的 Sigma.js 边框

html - SVG inside span 与文本不在同一行

c# - WPF 动画未触发