【问题标题】:How do I make html5 animation smooth?如何使html5动画流畅?
【发布时间】:2012-05-27 06:07:42
【问题描述】:

我正在为我的动画使用画布和 webkitrequestAnimation 框架。 但是,动画是即时的,不流畅..它太快了,我看不到任何动画.. 如何使动画流畅?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Wave 2</title>

</head>
<body>
<canvas id="canvas" width="400" height="400"></canvas>

<script>
window.onload = function () {
var canvas = document.getElementById('canvas'),
context = canvas.getContext('2d'),
angle = 0,
range = 50,
centerY = canvas.height / 2,
xspeed = 1,
yspeed = 0.05,
xpos = 0,
ypos = centerY;
context.lineWidth = 2;
(function drawFrame () {
window.webkitrequestAnimationFrame(drawFrame, canvas);

context.beginPath();
context.moveTo(xpos, ypos);
//Calculate the new position.
xpos += xspeed;
angle += yspeed;
ypos = centerY + Math.sin(angle) * range;
context.lineTo(xpos, ypos);
context.stroke();
}());
};
</script>
</body>
</html>

【问题讨论】:

    标签: html


    【解决方案1】:

    除了第 24 行的语法错误之外,这对我来说按预期工作:

    window.webkitrequestAnimationFrame(drawFrame, canvas);
    
    window.webkitRequestAnimationFrame(drawFrame, canvas);
    

    查看此页面上的答案:How to use requestAnimationFrame

    它将指导您编写一个请求动画功能,该功能适用​​于所有兼容的 Web 浏览器,而不仅仅是那些基于 webkit 构建的浏览器。如果您使用的浏览器不是 Safari 或 Chrome,这可能会解释任何不稳定的行为。

    我想在这里提倡createjs.com,因为它们为处理 HTML5 画布和动画提供了出色的 API。查看演示和源代码!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多