将笔记四(平滑运动)里bobbing.html文件代码稍加改变,即可创建一个线性垂直运动。文件名:vertical.html。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>垂直运动</title>
<style type="text/css">
#canvas{background-color: #99cc33;}
</style>
</head>
<body>
<canvas id="canvas" width="400" height="400"></canvas>
<script type="text/javascript" src="utils.js"></script>
<script type="text/javascript" src="ball.js"></script>
<script type="text/javascript">
window.onload = function(){
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
ball = new Ball(),
angle = 0;
centerY = 200,
range = 50,
xspeed = 1,
yspeed = 0.05;
ball.x = 0;
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = (window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback){
return window.setTimeout(callback,1000/60);
})
};
(function drawFrame(){
window.requestAnimationFrame(drawFrame,canvas);
context.clearRect(0,0,canvas.width,canvas.height);
(ball.x <= canvas.width)?(ball.x += xspeed):(ball.x = 0);
ball.y = centerY/2 + Math.sin(angle)*range;
ball.draw(context);
}());
};
</script>
</body>
</html>
效果图:
参见《HTML5+Javascript动画基础》。