久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

javascript - requestAnimationFrame如何控制幀速?

瀏覽:144日期:2022-12-11 15:11:44

問題描述

想在canvas里實現動畫,動畫是每幀都畫在Sprite上連成一張圖的,試過用setTimeout實現動畫,發現會跳幀,但是requestAnimationFrame無法控制幀速,我希望1s畫7幀該怎么辦?

問題解答

回答1:

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

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

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

let step = (timestamp, elapsed) => { if (elapsed > 1000 / 7) {//TO DO SOMETHINGelapsed = 0 }window.requestAnimationFrame(_timestamp => step(_timestamp, elapsed + _timestamp - timestamp) )}window.requestAnimationFrame(timestamp => step(timestamp, 0))回答2:

貌似不可控,瀏覽器自己計算的

回答3:

1s7幀這種刷新速率...本來就是'跳幀'的效果...

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 城步| 襄樊市| 霍城县| 昭苏县| 图木舒克市| 嘉黎县| 渭南市| 琼结县| 米林县| 永平县| 兴宁市| 平泉县| 常宁市| 阿拉尔市| 余江县| 马公市| 泉州市| 巧家县| 霍林郭勒市| 拜城县| 新民市| 清丰县| 河池市| 宝清县| 鱼台县| 景洪市| 新营市| 互助| 文山县| 娄底市| 利津县| 信丰县| 九龙城区| 慈利县| 普陀区| 伊金霍洛旗| 柳林县| 邛崃市| 溧水县| 阳谷县| 海原县|