Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để lưu và khôi phục các trạng thái HTML5 Canvas?


HTML5 canvas cung cấp hai phương pháp quan trọng để lưu và khôi phục trạng thái canvas.

Trạng thái canvas được lưu trữ trên ngăn xếp mỗi khi phương thức lưu được gọi và trạng thái đã lưu cuối cùng được trả lại từ ngăn xếp mỗi khi phương thức khôi phục được gọi.

Sr.No.
Phương pháp và Mô tả
1
save ()
Phương thức này đẩy trạng thái hiện tại lên ngăn xếp ..
2
khôi phục ()
Phương thức này bật trạng thái trên cùng trên ngăn xếp, khôi phục ngữ cảnh về trạng thái đó.

Ví dụ

Bạn có thể thử chạy mã sau để lưu và khôi phục HTML5 Canvas -

<!DOCTYPE HTML>
<html>
   <head>
      <style>
         #test {
            width: 100px;
            height:100px;
            margin: 0px auto;
         }
      </style>
      <script>
         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.fillRect(0,0,150,150);
               
               // Save the default state
               ctx.save();
               
               // Make changes to the settings
               ctx.fillStyle = '#66FFFF'
               ctx.fillRect( 15,15,120,120);
               
               // Save the current state
               ctx.save();
               
               // Make the new changes to the settings
               ctx.fillStyle = '#993333'
               ctx.globalAlpha = 0.5;
               ctx.fillRect(30,30,90,90);
               
                // Restore previous state
               ctx.restore();
               
               // Draw a rectangle with restored settings
               ctx.fillRect(45,45,60,60);
               
               // Restore original state
               ctx.restore();
               
               // Draw a rectangle with restored settings
               ctx.fillRect(40,40,90,90);
            } else {
               alert('You need Safari or Firefox 1.5+ to see this demo.');
            }
         }
      </script>
   </head>
   <body id = "test" onload = "drawShape();">
      <canvas id = "mycanvas"></canvas>
   </body>
</html>