亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

requestAnimationFrame如何控制幀速?

requestAnimationFrame如何控制幀速?

慕桂英4014372 2018-11-13 13:14:09
想在canvas里實現動畫,動畫是每幀都畫在Sprite上連成一張圖的,試過用setTimeout實現動畫,發現會跳幀,但是requestAnimationFrame無法控制幀速,我希望1s畫7幀該怎么辦?
查看完整描述

1 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

requestAnimationFrame就是在瀏覽器下一幀渲染時調用的,所以可以認為requestAnimationFrame的調用速率就是瀏覽器的刷新速率,一般來說是60幀

但是requestAnimationFrame調用callback的時候會傳入一個時間戳參數,可以根據這個參數來進行判斷從而處理你實際需要的幀速

比如要1秒7幀的話可以這樣寫

let step = (timestamp, elapsed) => {

    if (elapsed > 1000 / 7) {

        //TO DO SOMETHING

        elapsed = 0

    }

    

    window.requestAnimationFrame(

        _timestamp => step(_timestamp, elapsed + _timestamp - timestamp)

    )

}

window.requestAnimationFrame(timestamp => step(timestamp, 0))


查看完整回答
反對 回復 2018-12-08
  • 1 回答
  • 0 關注
  • 686 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號