Cp2 最后的API
橡皮擦clearRect()
之前一直教大家怎么绘图,各种画笔各种样式,却没有教过童鞋们使用橡皮擦。Canvas 提供了clearRect()方法,就是清空指定矩形上的画布上的像素。它接受四个参数,和其他绘制矩形的方法一样——context.clearRect(x,y,w,h)。
下面,我们把之前新画布(实例 9-1)上的空白矩形给擦了吧!让整个页面显示出完整的背景图片。
clearRect()
body { background: url("./images/bg2.jpg") repeat; }
#canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }
演示 22-1
运行结果:
橡皮擦就是这么简单~
点泡泡小游戏
这里通过一个小游戏介绍一个交互性很强的API——isPointInPath()。
点泡泡
#canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }
演示 22-2
运行结果:
这个是基于示例 19-2小的交互游戏。鼠标移动到小球上,小球就会渐渐消失。这里用到了鼠标事件canvas.addEventListener("mousemove",function);以后会详细说。还用到了一个新的API——isPointInPath()。这个方法接收两个参数,就是一个点的坐标值,用来判断指定的点是否在当前路径中。若是,则返回true。
像素操作API
还有最后六个关于像素操作的API,基本不会用到,这里就不详细说了。列表如下。
| 属性 | 描述 |
|---|---|
| width | 返回 ImageData 对象的宽度 |
| height | 返回 ImageData 对象的高度 |
| data | 返回一个对象,其包含指定的 ImageData 对象的图像数据 |
| 方法 | 描述 |
|---|---|
| createImageData() | 创建新的、空白的 ImageData 对象 |
| getImageData() | 返回 ImageData 对象,该对象为画布上指定的矩形复制像素数据 |
| putImageData() | 把图像数据(从指定的 ImageData 对象)放回画布上 |
如果童鞋们想深入学习,可以直接查HTML5 Canvas参考手册,自行了解学习。
Canvas 图形库
不知不觉写了22个章节,所有我们写的图形其实都可以封装在一个JS文件里,这个文件就是属于我们自己的图形库、图形引擎。当然,第三方也提供了很多优秀的图形库,这里推荐三个给大家。
canvasplus
Artisan JS
Rgraph
大家有兴趣的话可以自行查阅了解一下。
Canvas API没有结束
Canvas的标准一直在更新,大家可以访问 W3C Canvas标准查看最新的API。但是一般最新的API很多浏览器都不会立刻去支持,所以可以等待大多数浏览器稳定支持了之后,我们再去掌握它也不迟。
至此,目前所有的Canvas API我们就已经讲完了。掌握了所有的绘画方法和技巧,成为一个艺术家,并不是我们最终的目标。或许,现在大家已然可以绘制出优美的图形,或抽象、或清新。或许,现在大家已经可以将Canvas API铭记于心,并且能够熟练使用它。
但是要知道,这只是基础。在之后的日子里,我们要基于Canvas 学习动画。众所周知,动画是由一帧帧的画面构成,不会绘画哪来动画?所以,Canvas绘制只是后面学习的基础。
这不是结束,而是一个新的开始。让我们继续前进~




