2012-10-09 88 views
0

帧它不工作:帆布动画 - 通过框架

var ctx=document.getElementById("mycanvas").getContext('2d'); 
var image = new Image(); 
var firtImg=1; 
var lastImg=75; 

window.requestAnimFrame = (function(callback) 
{ 
    return window.requestAnimationFrame || 
    window.webkitRequestAnimationFrame || 
    window.mozRequestAnimationFrame || 
    window.oRequestAnimationFrame || 
    window.msRequestAnimationFrame || 
    function(callback) 
    { 
     window.setTimeout(callback, 1000/60); 
    }; 
} 
)(); 


function draw(){ 
    //loop here for loading system 
    if(firstImg< lastImg){ 
     image.src = 'iglesiafls'+(firstImg++)+'.png'; 
     ctx.drawImage(image,0,0,550,800,0,0,550,800); 
     requestAnimFrame(draw); 
     render(); 
    }  
} 

我想要实现使用帆布75个图像帧动画帧。

+0

你的函数*渲染*实际存在吗? – m90

回答

1

这可能是与时机的问题 - 当你正试图在这里使用它们具体而言,您的图像可能无法加载:

if(firstImg< lastImg){ 
    image.src = 'iglesiafls'+(firstImg++)+'.png'; 
    ctx.drawImage(image,0,0,550,800,0,0,550,800); 
    requestAnimFrame(draw); 
    render(); 
} 

如果不加载它们,调用的drawImage会失败。您是否尝试过的东西,如替换的drawImage电话:

ctx.arc(200, 400, firstImg*10, 0, Math.PI * 2, 0); 

画圆(或其他),并确认您的动画调用工作?或者,如果您有权访问JavaScript调试器,请设置断点?

这里有一个工作jsFiddle - 你有这可能是没有帮助一个错字:firstImg VS firtImg。

+0

好,我尽量让你的榜样制定并没有什么 –

+0

你好的人,谢谢你,但我不能做这项工作,我只是用你的代码复制并粘贴在页面上并没有任何反应。 –

+0

绘图函数是否被调用?弹出提示(“绘制”);在那里看看它是一个画布问题还是一个动画请求。另外,小提琴在您的浏览器中工作吗? – PRB