我试图在这个伟大的脚本here的基础上构建,并由Phrogz解答。在动画之前改进HTML5画布逐帧JPG动画以完全缓存
问题是只有所有图像都缓存在浏览器中,动画才会播放。因此,在第一次加载时它不会播放。只有在重新加载。
我试图做到这一点是我试图提供一个替代解决方案来获取动画自动播放,因为该功能在iOS浏览器无法正常工作。
这里是我使用的代码:
function draw() {
var imgNumber = 1;
var lastImgNumber = 121;
var ctx = canvas.getContext('2d');
var img = new Image;
img.onload = function(){
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
ctx.drawImage(img, 0, 0);
};
var timer = setInterval(function(){
if (imgNumber>lastImgNumber){
clearInterval(timer);
}
else{
img.src = "jpg_80/t5_"+(imgNumber++)+".jpg";
}
}, 1000/24); //Draw at 24 frames per second
}
我已经试过结束标记之前添加此:
window.onload = draw;
不过,我相信,代码必须是在draw()函数内改变。 setInterval函数中的某处?
你想先加载所有121张图片,然后开始动画吗? – pimvdb
当您有121个jpeg帧的动画时,您应该使用'
@ Philipp是的,但是,关键是要让这个动画在iOS中自动播放。否则,我只会使用