本文摘自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实现简单的双缓冲的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
HTML5规定元素是否可拖动的属性draggable
android使webview支持HTML5 video全屏播放的方法分享(图)
HTML5的触摸事件
HTML5中布尔属性的hidden
哪些浏览器支持HTML5
详解websocket跨域问题解决
HTML5实践-使用css制作时间icon的具体详解(图)
总结HTML5中新表单元素的使用方法及实例教程
HTML5表单相关元素和属性
移动端中touch事件的详解
更多相关阅读请进入《HTML5》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » html5 canvas实现简单的双缓冲