本文摘自PHP中文网,作者不言,侵删。
在HTML5画布上有很多有趣的东西,请求动画框架和用JavaScript制作动画,今天的这篇文章给大家分享的内容是关于html5 canvas实现简单的双缓冲,有需要的朋友可以看一看文章中的方法。
对于更高级的内容,您可能希望使用画布,这通常是GPU加速的,并且允许使用window.request.tionFrame进行相当高和稳定的帧速率。(推荐课程:HTML5视频教程)
如果您需要在画布上进行双重缓冲,那么一种流行的方法是创建第二个画布元素并绘制到那个画布元素,然后使用drawImage将完成的图像绘制到主画布,结果如下:
1 2 3 4 5 6 7 8 9 | 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()
今天,我发现有一种方法更清洁,效果和上面的方法一样好:
1 2 3 4 5 6 7 | (function drawFrame() {
requestAnimationFrame(drawFrame);
primaryCtx.save(); //Freeze redraw
primaryCtx.fillStyle = "#f00";
primaryCtx.fillRect(10,10,20,20);
primaryCtx.restore(); //And now do the redraw
})();
|
尽管名称很奇怪,但是它只是冻结了上下文的呈现,然后在完成绘图之后恢复呈现。
本篇文章到这里就全部结束了,更多精彩内容大家可以关注php中文网相关视频教程栏目!!!
以上就是html5 canvas实现简单的双缓冲的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
使用html和css的新特性实现响应式布局
HTML5仿amd9官网酷炫的下载引导页动画特效的示例代码
HTML5 web 存储详解
HTML5实现调用摄像头并拍照功能
用h5制作烟花粒子特效的制作方法
详细介绍精选HTML5/css3动画应用源码分享
h5的语义化标签
h5与传统html的区别
h5拖放api进行拖放排序
如何在HTML5中使用svg
更多相关阅读请进入《HTML5》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » html5 canvas实现简单的双缓冲