代碼有幾個問題。
- 你沒有
onload
處理
- 您正在使用的圖像元素
x
和y
性能 - 這是隻讀屬性
- 您正在使用的圖像元素,而不是一個自定義對象添加屬性
- 你打算叫
draw
代替animate
- 您還沒有清空畫布的每個畫
背景
- 您正在試圖利用其網址
- 聚填充應該是循環
- 的
reqAnimFrame
聚不承認非前綴外繪製的圖像。
- 和車去副作用的方法.. :-)
這裏是調整代碼和modified fiddle:
var reqAnimFrame =
window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame;
var c = document.getElementById('canvas');
var ctx = c.getContext('2d');
c.height = window.innerHeight;
c.width = window.innerWidth;
var car = new Image();
/// when image is loaded, call this:
car.onload = animate;
/// x and y cannot be used, in "worse" case use this but ideally
/// use a custom object to set x and y, store image in etc.
car._x = 40;
car._y = 60;
car.src = "http://i.imgur.com/8jV4DEn.png";
var speed = 5;
function animate(){
car._y += speed;
draw();
reqAnimFrame(animate);
}
function draw(){
/// clear background
ctx.clearRect(0, 0, c.width, c.height);
/// cannot draw a string, draw the image:
ctx.drawImage(car, car._x, car._y);
}
/// don't start animate() here
//animate();
來源
2013-11-04 19:55:06
K3N
它沒有工作,不幸的是 - 用小提琴給我看包括我? :) –
@ Nilzone-請參閱更新的答案,該帖子有點誤導相比,小提琴:) – K3N
非常感謝你的超清晰答案:)我仍然有很多東西要學會 –