我的画布有一个简单的绘图图像,但它不会显示在第一帧上。
这让我很生气我不知道为什么不这样做!!
这是我的剧本:
img = new Image();
img.src = 'images/0.png'; //preLoad the image
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( callback, element){
window.setTimeout(callback, 1000 / 60);
};
})(); //frames per second
function gameUpdate(){
previous = 0;
requestAnimFrame( gameUpdate );
draw();
}
然后draw()
函数具有:
//doesn't display on first fame
canvas['canvas1'].ctx.drawImage(img, 100, 150);
//displays on first frame
canvas['canvas1'].ctx.fillStyle = "rgba(255, 255, 255, 0.8)";
canvas['canvas1'].ctx.fillRect (30, 30, 55, 50);
FillRect工作得很好但不是第一帧的drawImage,任何想法为什么会这样?
答案 0 :(得分:2)
我认为您应该通过调用requestAnimFrame
函数
gameUpdate
来启动动画循环
requestAnimFrame(gameUpdate)
您可能还需要确保图像实际已加载
var img = new Image();
img.onload = function() {
// do the draw image here
}
img.src = 'images/0.png'; //preLoad the image