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

Phương pháp lưu và khôi phục trong HTML5 Canvas là gì?

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 một ngăn xếp mỗi khi lưu phương thức đượ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 khôi phục phương thức được gọi.

<đầu>
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 đoạn mã sau để tìm hiểu về các phương pháp lưu và khôi phục trong 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>