0
我用這個在一個較低的畫布:幀刷新衝突的超時和requestAnimationFrame
var requestAnimFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame ||
function(callback) {
window.setTimeout(callback, 1000/60);
};
我用這一個帆布層高於低一個:
function DrawSpawnAnimation() {
anim();
}
function anim() {
ctxAnimation.drawImage(spriteSheet, ExplodeFrame * 100, 2740,100,100,explodeX,explodeY,100,100);
if (ExplodeFrame < 5) {
ExplodeFrame++;
setTimeout(anim, 500);
}
//alert("Show current frame of animation"); - this shows the animation works, it just does
// not show it one frame per half second.
}
我的問題是動畫在屏幕上以毫秒爲單位閃爍。下面的畫布刷新了嗎?
底帆布將動畫每秒2X是有辦法做到這一點不低帆布附近去,只是有它的上部畫布上運行讓下面的畫布繼續下去,好像什麼都沒有發生? – Sam
這兩個畫布是否需要動畫?如果是這樣,那麼不行 - 只有1個RAF代碼。你可以有多個setTimeouts,但是這會在性能上倒退一步。你真的可以用RAF +計數器處理多個畫布動畫。 – markE
因爲我有requestAnimFrame(Loop);對於我的較低畫布,它剛剛獲得需要更長時間等待的頂層會讓我感到困惑。頂層是爆炸動畫,底層只是玩家移動的fps。 – Sam