Pro HTML5 Programming(Second Edition)2.Canvas API(2)

时间:2024-01-10 12:54:08

1.在页面中加入canvas元素

  eg:

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Test02</title>
     <script type="text/javascript" src="Test02.js"></script>
 </head>
 <body>
     <!-- <div id="support"></div> -->
     <canvas id="diagonal" style="border:1px solid;" width="200" height="200"></canvas>
 </body>
 </html>

  注意:上面的代码中增加了值为“diagonal”的ID特性,这样做可以方便以后通过ID来快速找到canvas元素,对于任何cnavas对象来说,ID特性都是十分重要的,因为对canvas元素的所有操作都是通过脚本代码控制的,没有ID的话,想要找到要操作的canvas元素会很难。

执行效果图如下:

Pro HTML5 Programming(Second Edition)2.Canvas API(2)

2.在canvas中绘制一条对角线

  Test02.js

  

 function drawDiagonal(){
         //取得canvas元素及其绘图上下文
         var canvas=document.getElementById("diagonal");
         var context=canvas.getContext("2d");   

         //用绝对坐标来创建一条路径
         context.beginPath();
         context.moveTo(70,140);
         context.lineTo(140,70);

         //将这条线绘制到canvas上
         context.stroke();
     }

         window.addEventListener("load",drawDiagonal,true);

Pro HTML5 Programming(Second Edition)2.Canvas API(2)

  以上代码展示了使用HTML5 Canvas API的重要流程:

    首先通过引用特定的canvas id值来获取对canvas对象的访问权,接着定义一个context变量,调用canvas对象的getContext方法,并且传入希望使用的canvas类型,代码清单中通过传入“2d”俩获取一个二维的上下文。

  在代码中调用了三个方法:beginPath,moveTo,lineTo,传入了这条线的起点和终点。方法moveTo和lineTo实际上并不是画线,而是在结束canvas操作的时候,通过调用context.stroke()方法完成线条的绘制。

注意:

  canvas中所有的操作都是通过上下文对象来完成的,所有涉及到视觉输出效果的功能都只能通过上下文对象而不是画布对象来使用。canvas中的很多设置样式和外观的函数不会直接修改显示结果。只有当对路径应用绘制(stroke)或是填充(fill)方法时,结果才会显示出来,否则,只有在显示图像,显示文本或是绘制,填充和清除矩形框的时候,canvas才会马上更新。