婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解使用雙緩存解決Canvas clearRect引起的閃屏問題

詳解使用雙緩存解決Canvas clearRect引起的閃屏問題

熱門標簽:黃石ai電銷機器人呼叫中心 如何查看地圖標注 ok電銷機器人 地圖標注軟件打印出來 惡搞電話機器人 高德地圖標注商戶怎么標 智能電銷機器人被禁用了么 欣鼎電銷機器人 效果 電話機器人技術(shù)

前言

今天用 canvas 做 H5 的時候遇到了閃屏問題。閃爍效果如下圖:

 

問題簡介

功能簡介

H5 該部分的功能為:通過點擊二級菜單,切換圖片的遮罩或者更換背景。

因為功能簡單,所以用了原生 canvas 實現(xiàn)這個功能。但在使用 clearRect 清除畫布的時候會出現(xiàn)閃爍的情況。

代碼實現(xiàn)(問題代碼)

以下代碼即為出現(xiàn)閃屏的關(guān)鍵代碼,省略了圖片的定義與 onload:

// 點擊二級菜單后,觸發(fā)該函數(shù)更新畫布
updateCanvas(){
    const canvas = document.getElementById('canvas'); // 獲取畫布
    const ctx = canvas.getContext('2d');
    ctx.clearRect(0,0,1448,750); // 清空畫布
    // 開始重繪
    ctx.drawImage(bg,0,0); // 背景
    ... // 省略其他繪制過程
}

問題分析

經(jīng)過簡單分析,得出閃屏的原因是 clearRect 清除畫布后,繪制的時間較長導(dǎo)致出現(xiàn)閃屏的現(xiàn)象。

什么是雙緩存

來看一下microsoft 網(wǎng)站中雙緩沖圖形 這篇文章對雙緩存的解釋:

對圖形進行編程時出現(xiàn)閃爍是一個常見問題。 需要多個復(fù)雜畫圖操作的圖形操作可導(dǎo)致呈現(xiàn)的圖像出現(xiàn)閃爍或具有不可接受的外觀。 為解決這些問題,.NET Framework 提供了雙緩沖功能。

雙緩沖使用內(nèi)容緩沖來解決與多個畫圖操作相關(guān)的閃爍問題。 啟用雙緩沖后,所有畫圖操作會首先呈現(xiàn)到內(nèi)存緩沖而不是屏幕上的繪圖圖面。 所有畫圖操作完成后,內(nèi)存緩沖會直接復(fù)制到與之關(guān)聯(lián)的繪圖圖面。 由于屏幕上僅執(zhí)行一個圖形操作,因此與復(fù)雜畫圖操作相關(guān)的圖像閃爍可得以消除。

使用雙緩存解決問題

以上引用,簡單來說,主要問題就是繪制時間較長導(dǎo)致了閃屏,解決方法就是新建一個 canvas 作為 緩存 canvas ,通過 緩存 canvas 完成繪制過程,繪制完成后,直接將 緩存 canvas 復(fù)制到原來的 canvas,這樣就可以解決繪制時間過長導(dǎo)致的閃屏問題。

代碼實現(xiàn)

以下代碼即為關(guān)鍵代碼,省略了圖片的定義與 onload:

updateCanvas(){
    const canvas = document.getElementById('canvas'); // 獲取頁面中的 canvas
    const ctx = canvas.getContext('2d');
    
    const tempCanvas = document.createElement('canvas'); // 新建一個 canvas 作為緩存 canvas
    const tempCtx = tempCanvas.getContext('2d');
    tempCanvas.width = 1448; tempCanvas.height = 750; // 設(shè)置寬高

    // 開始繪制
    tempCtx.drawImage(bg,0,0); // 背景
    ... // 省略其他繪制過程
    
    // 緩存 canvas 繪制完成
    
    ctx.clearRect(0,0,1448,750); // 清空舊 canvas
    ctx.drawImage(tempCanvas,0,0); // 將緩存 canvas 復(fù)制到舊的 canvas
}

效果驗收

可以很明顯的看到閃屏問題解決了!

 

總結(jié)

重繪畫布的時候,我們需要使用 clearRect 來清空畫布,此時的畫布是空的,開始重繪后,如果內(nèi)容較多,時間也就相應(yīng)的增加,因此視覺出現(xiàn)了空檔期,我們就看到了閃屏的情況;

解決閃屏,其實就是怎么解決繪制時間較長的問題;

這里參考了圖形圖象處理編程中 雙緩存 的概念,將繪制過程交給了 緩存 canvas ,這樣頁面中的 canvas 就省去了繪制過程,而 緩存 canvas 并沒有添加到頁面,所以我們就看不到繪制過程,也就解決了閃屏的問題。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標簽:盤錦 聊城 萍鄉(xiāng) 綏化 中山 赤峰 阿壩 金昌

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳解使用雙緩存解決Canvas clearRect引起的閃屏問題》,本文關(guān)鍵詞  詳解,使用,雙,緩存,解決,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解使用雙緩存解決Canvas clearRect引起的閃屏問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解使用雙緩存解決Canvas clearRect引起的閃屏問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲精品一区二区三区影院| 中文字幕精品—区二区四季| 日韩三区在线观看| 一区二区视频在线| 国产盗摄女厕一区二区三区| 欧美经典一区二区| 成人免费观看男女羞羞视频| 欧美激情在线一区二区| 成人av在线资源| 亚洲欧美区自拍先锋| 欧美日韩高清一区二区| 日本va欧美va瓶| 精品欧美一区二区久久| 高清在线观看日韩| 日韩毛片精品高清免费| 欧美色老头old∨ideo| 琪琪久久久久日韩精品| 国产欧美精品一区二区色综合 | 久久97超碰国产精品超碰| 日韩精品一区二区三区老鸭窝| 国产一区二三区| 亚洲精品免费看| 日韩三级av在线播放| 成人激情免费视频| 日韩一区精品视频| 国产人成亚洲第一网站在线播放| 99国产精品一区| 日韩电影一区二区三区| 国产精品毛片高清在线完整版| 欧洲精品一区二区| 国产精品中文有码| 亚洲影院在线观看| 欧美一区二区三区思思人| 成人白浆超碰人人人人| 日日夜夜免费精品视频| 综合中文字幕亚洲| 欧美疯狂性受xxxxx喷水图片| 国内一区二区在线| 一区二区三区四区亚洲| 国产亚洲精品aa| 日韩精品一区二区三区视频播放 | 国产精品灌醉下药二区| 欧美一区二区三区在线电影| 95精品视频在线| 风间由美性色一区二区三区| 日本中文字幕一区| 亚洲bt欧美bt精品| 亚洲天堂福利av| 中文字幕中文字幕一区二区 | 欧美va在线播放| 欧美日韩在线播放| 色综合久久久久网| 国产成a人亚洲| 国产美女一区二区| 狠狠狠色丁香婷婷综合久久五月| 日本欧美一区二区| 日本大胆欧美人术艺术动态 | 国产精品一区二区无线| 玖玖九九国产精品| 奇米色一区二区| 视频一区欧美日韩| 日韩电影在线观看电影| 久久精品99久久久| 国产综合色精品一区二区三区| 欧美a级一区二区| 免费在线成人网| 精品亚洲成a人| 国产一区二区精品久久| 国产精品资源网站| 国产精品亚洲视频| 成人一区二区在线观看| 国产精品123| 丁香啪啪综合成人亚洲小说| 国产精品色一区二区三区| 26uuu精品一区二区在线观看| 欧美精品一区二区在线观看| 欧美大片一区二区| 久久综合狠狠综合| 日本一区二区三区在线不卡 | 青青草一区二区三区| 免费成人小视频| 国产在线播放一区二区三区| 国产一区在线看| k8久久久一区二区三区| 欧美综合久久久| 日韩欧美专区在线| 国产亚洲欧美一级| 亚洲精品成a人| 麻豆视频观看网址久久| www.色精品| 欧美色成人综合| 欧美日韩中文另类| 久久九九99视频| 亚洲动漫第一页| 国产精一品亚洲二区在线视频| 99久久久久久| 精品日韩一区二区三区免费视频| 中文字幕乱码久久午夜不卡| 亚洲第一会所有码转帖| 国产精品一区二区在线播放 | 欧美videossexotv100| 国产精品不卡一区二区三区| 三级在线观看一区二区| www.av精品| 久久综合色综合88| 亚洲成av人片一区二区梦乃| 国产综合久久久久久久久久久久| 日本道在线观看一区二区| 精品久久国产字幕高潮| 一级中文字幕一区二区| 国产mv日韩mv欧美| 日韩久久久精品| 亚洲成人一区二区在线观看| zzijzzij亚洲日本少妇熟睡| 日韩精品一区二区三区视频| 午夜精品福利一区二区三区av| 99久久免费视频.com| 久久九九全国免费| 国产一区二区在线观看视频| 欧美日韩国产一级二级| 国产精品美日韩| 国产乱子伦视频一区二区三区| 欧美日本在线看| 洋洋av久久久久久久一区| 不卡在线观看av| 国产欧美一区二区精品秋霞影院| 久久精品国产秦先生| 欧美精品v日韩精品v韩国精品v| 亚洲精品自拍动漫在线| 99re视频精品| 一区二区三区中文字幕精品精品 | 日本精品一级二级| 欧美精品一区二区三区在线播放| 美女一区二区在线观看| 91.成人天堂一区| 亚洲大片在线观看| 欧美日本国产视频| 日韩国产欧美在线视频| 高清不卡在线观看av| 中文字幕欧美三区| 成人午夜激情影院| 国产精品丝袜久久久久久app| 成人免费电影视频| 玉米视频成人免费看| 在线观看日韩高清av| 亚洲成av人**亚洲成av**| 欧美精选在线播放| 黄页网站大全一区二区| 国产欧美精品区一区二区三区| 成人一区二区视频| 亚洲女人小视频在线观看| 97久久精品人人澡人人爽| 亚洲人成网站色在线观看 | 99精品欧美一区二区三区综合在线| 日本一区二区视频在线| 色哟哟一区二区在线观看| 性做久久久久久| 欧美一级片在线观看| 另类小说视频一区二区| 久久精品欧美日韩| 成人av网址在线观看| 亚洲综合区在线| 欧美一区二区视频在线观看2022 | 精品一区二区三区在线观看 | 亚洲免费资源在线播放| 成人app在线观看| 亚洲欧美日韩国产综合| 欧美女孩性生活视频| 美美哒免费高清在线观看视频一区二区| 在线视频一区二区免费| 天天综合色天天综合| 久久久久国产精品麻豆| 成人一区二区三区视频| 国产欧美精品区一区二区三区 | 国产福利精品一区| 国产精品每日更新| 91麻豆精品国产91久久久使用方法| 日本亚洲三级在线| 中文字幕一区二区三区视频| 97久久久精品综合88久久| 一区二区三区中文在线观看| 亚洲精品一区二区三区99| av电影在线观看一区| 婷婷六月综合亚洲| 久久久久九九视频| 欧美日韩一卡二卡| 91亚洲精品乱码久久久久久蜜桃| 一级中文字幕一区二区| 日韩欧美国产综合| 在线免费观看不卡av| 国产精品一区二区久久不卡| 亚洲午夜在线视频| 国产精品日日摸夜夜摸av| 欧美高清你懂得| 北条麻妃国产九九精品视频| 日韩电影免费在线| 一区二区三区视频在线看| 国产情人综合久久777777| 91精选在线观看| 99re8在线精品视频免费播放|