如何让我的文字在画布上移动动画更平滑(不那么摇晃的动作)?
页面的运行与我想要的完全一样,但文本的运动非常不规则。如何才能让它以这样的速度运行更顺畅?
代码:
<style>
#cvs {
position: absolute;
top: 0px;
left: 0px;
}
</style>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
<script type="text/javascript">
var context;
var text = "";
var textDirection ="";
$(function()
{
context = document.getElementById("cvs").getContext("2d");
setInterval("animate()", 360);
textDirection ="right";
textXpos = 5;
text = "This is my video..";
});
function animate() {
// Clear screen
context.clearRect(0, 0, 500, 500);
context.globalAlpha = 1;
//context.fillStyle = '#fff';
// context.fillRect(0, 0, 500, 500);
var metrics = context.measureText(text);
var textWidth = metrics.width;
if (textDirection == "right") {
textXpos += 10;
if (textXpos > 500 - textWidth) {
textDirection = "left";
}
}
else {
textXpos -= 10;
if (textXpos < 10) {
textDirection = "right";
}
}
context.font = '20px _sans';
context.fillStyle = 'white';
context.textBaseline = 'top';
context.fillText ( text, textXpos, 440);
}
</script>
</head>
<body>
<div id="page">
<video id="video" autoplay loop>
<source id='mp4'
src="http://media.w3.org/2010/05/sintel/trailer.mp4"
type='video/mp4'>
<source id='webm'
src="http://media.w3.org/2010/05/sintel/trailer.webm"
type='video/webm'>
<source id='ogv'
src="http://media.w3.org/2010/05/sintel/trailer.ogv"
type='video/ogg'>
<p>Your user agent does not support the HTML5 Video element.</p>
</video>
<canvas id="cvs" width="500" height="500">
Your browser does not support the HTML 5 Canvas.
</canvas>
</div>
</body>
</html>
答案 0 :(得分:3)
缩短动画功能的间隔时间。您目前将其设置为每360毫秒调用一次,每秒少于3帧。将它设置在20到40之间,以获得流畅的动画效果。