html5 canvas store 和 restore 详解

function drawShape(){
  // get the canvas element using the DOM
  var canvas = document.getElementById('mycanvas');
 
  // Make sure we don't execute when canvas isn't supported
  if (canvas.getContext){
 
     // use getContext to use the canvas for drawing
     var ctx = canvas.getContext('2d');

     //  draw a rectangle with default settings
     ctx.fillStyle = 'black' ;    
     ctx.fillRect(0,0,150,150);
     //  Save the default state 
     // (1)
     ctx.save();      
            
     // Make changes to the settings
     ctx.fillStyle = 'blue'       
     ctx.fillRect( 15,15,120,120); 
     // Save the current state
     //(2)
     ctx.save();                  
    
     // Make the new changes to the settings
     ctx.fillStyle = 'white';       
     ctx.globalAlpha = 0.5;    
     ctx.fillRect(30,30,90,90);

     // Restore previous state
     //restore (2)
     ctx.restore();
     // Draw a rectangle with restored settings               
     ctx.fillRect(45,45,60,60);   

     // Restore original state
     //restore (1)
     ctx.restore();
     // Draw a rectangle with restored settings          
     ctx.fillRect(55,55,45,45);  
  
  } else {
    alert('You need Safari or Firefox 1.5+ to see this demo.');
  }
}

自然,restore是出栈的意思!!

(原文为外国网站,忘记地址了。感谢!)

转载于:https://www.cnblogs.com/gfqFighting/archive/2012/10/03/2710744.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值