我正在尝试通过每 100 毫秒替换一次图像的 src 来使用 Javascript 实现动画 PNG。它显示得很好,但我发现它在 Firefox 上运行时会逐渐消耗越来越多的内存。
这是我用来播放动画的循环,虽然我不认为它有什么特别之处——
self.next = function() {
if(self.doPlay == true) {
self.currentFrame++;
if(self.currentFrame >= self.numFrames) {
self.currentFrame = 0;
self.doPlay = self.doLoop;
}
}
if(self.doPlay == true) {
image.src = self.frames[self.currentFrame].src;
setTimeout( self.next, self.frameDelays[self.currentFrame]);
}
}
(其中 frames 是一组预加载的 Image 对象)
如果我注释掉 src 中的更改,则内存使用情况很好。否则,内存使用量会无限上升,直到浏览器最终崩溃。
我尝试从 DOM 中删除和替换图像,而不是更改 src(在香草和 jQuery 中),但它似乎没有帮助。
有人知道更好的方法吗?
谢谢你的时间 :)