溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

html5 canvas如何實現(xiàn)簡單的雙緩沖

發(fā)布時間:2020-10-19 15:58:50 來源:億速云 閱讀:138 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細講解有關html5 canvas如何實現(xiàn)簡單的雙緩沖,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

對于更高級的內(nèi)容,您可能希望使用畫布,這通常是GPU加速的,并且允許使用window.request.tionFrame進行相當高和穩(wěn)定的幀速率。(推薦課程:HTML5視頻教程)

如果您需要在畫布上進行雙重緩沖,那么一種流行的方法是創(chuàng)建第二個畫布元素并繪制到那個畫布元素,然后使用drawImage將完成的圖像繪制到主畫布,結(jié)果如下:

var primaryCtx = document.getElementById("canvas").getContext("2d");
var secondaryCanvas = document.createElement("canvas"),
      secondaryCtx = secondaryCanvas.getContext("2d");
      (function drawFrame() {
    requestAnimationFrame(drawFrame);
    secondaryCtx.fillStyle = "#f00";
    secondaryCtx.fillRect(10,10,20,20);
    primaryCtx.drawImage(secondaryCanvas);
    })();

輸入CTX.SAVER()和CTX.Rebug()

今天,我發(fā)現(xiàn)有一種方法更清潔,效果和上面的方法一樣好:

(function drawFrame() {
    requestAnimationFrame(drawFrame);
    primaryCtx.save(); //Freeze redraw
    primaryCtx.fillStyle = "#f00";
    primaryCtx.fillRect(10,10,20,20);
    primaryCtx.restore(); //And now do the redraw
    })();

盡管名稱很奇怪,但是它只是凍結(jié)了上下文的呈現(xiàn),然后在完成繪圖之后恢復呈現(xiàn)。

關于html5 canvas如何實現(xiàn)簡單的雙緩沖就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI