单击按钮更改setTimeout的延迟

时间:2019-11-08 05:27:00

标签: javascript html html5-canvas

我正在用HTML画布创建3D旋转立方体。我的代码看起来像这样

IssuerSigningKey

此处dacc是减速度因数,它会减慢旋转速度。我需要创建按钮摩擦力,这将使减速度进一步减慢x倍。在setTimeout仍在进行中时,如何更改减加速度系数?我尝试使用onclick函数更新dacc的值,但这不起作用。还是有其他方法可以调用上面的函数来解决这个问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

请勿使用计时器更改速度。设备的显示速率固定为每秒60帧。您应该与此速率同步制作动画。使用requestAnimationFrame(rAF)

下面的代码使用rAF每60秒更新一次动画。

  • String是每帧旋转多少
  • 每帧速度降低rotateSpeed中的数量。如果低于最小值dacc,旋转停止;
  • 点击事件可以通过更改minSpeed来更改减速率
  • 当转速低于minSpeed时,rAF将停止。
  • 开始动画调用dacc

使用的值只是您的代码中的一个估计值。您将必须使用这些值来使动画看起来像您想要的样子。

startRotateAnim();