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 の変更をコメントアウトすると、メモリ使用量は問題ありません。そうしないと、ブラウザが最終的にクラッシュするまで、メモリ使用量が際限なく上昇します。
src を変更する代わりに (バニラと jQuery の両方で) DOM から画像を削除して置き換えようとしましたが、役に立たなかったようです。
誰もがより良い方法を知っていますか?
御時間ありがとうございます :)