html5阴影save restore,HTML5 canvas save和restore方法讲解

这篇博客通过一个连续矩形的例子展示了如何利用Canvas的save和restore方法来管理绘图状态。首先绘制一个大矩形并保存状态,接着改变颜色绘制白色矩形,再保存状态,然后绘制蓝色矩形。使用restore方法可以恢复到上一个保存的状态,即填充颜色为白色。文章强调了restore在避免手动设置属性时的重要性,特别是在处理多个状态变化时。
摘要由CSDN通过智能技术生成

举个save 和 restore 的应用例子吧。

我们尝试用这个连续矩形的例子来描述 canvas 的状态堆是如何工作的。第一步是用默认设置画一个大四方形,然后保存一下状态。改变填充颜色画第二个小一点的白色四方形,然后再保存一下状态。再次改变填充颜色绘制更小一点的蓝色四方形。然后我们调用了restore方法将设置回到前一个save状态下的fillStyle="white",即在不设定颜色值的情况下再绘制最小的矩形时其添充色为白色。

一旦我们调用 restore,状态堆中最后的状态会弹出,并恢复所有设置。如果不是之前用 save 保存了状态,那么我们就需要手动改变设置来回到前一个状态,这个对于两三个属性的时候还是适用的,一旦多了,我们的代码将会猛涨。 简而言之restore方法就可以理解成将其对应的当前save状态下的设置全部恢复为前一个状态

代码:

window.οnlοad=function(){

var ctx=document.getElementByIdx_x_x("canvas").getContext("2d");

ctx.fillRect(10,10,150,150);

ctx.save();

ctx.fillStyle="white";

ctx.fillRect(30,30,110,110);

ctx.save();

ctx.fillStyle="blue";

ctx.fillRect(50,50,70,70);

ctx.restore();//回到上一个状态,即 ctx.fillStyle="white";

ctx.save();

ctx.fillRect(70,70,30,30);//所以此处没有设定fillStyle的时候颜色为white,注意哦!如果在白色矩形后面也restore一下刚此处的fillStyle就为黑色了

ctx.restore();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值