《HTML5 canvas开发详解(第2版)》——2.11 清除画布的方法

2.11 清除画布的方法

读者已经在第1章中探索了如何刷新画布,第4章还会更深入地探讨。在本章结束之前,还要介绍一个可用于完全清除画布和刷新内容的例子。

2.11.1 简单填充
使用一个新的背景色简单地填充整个画布,这样就可以清除当前内容,代码如下:

context.fillStyle = '000000';
context.fillRect(0,0,theCanvas.width, theCanvas.height)

2.11.2 重置画布的宽和高
当画布的宽或高被重置时,当前画布内容就会被移除,代码如下:

var w=theCanvas.width;
var h=theCanvas.height;
theCanvas.width=w;
theCanvas.height=h;

2.11.3 重新设置画布的clearRect 函数
clearRect() 函数可以指定起始点的x、y位置以及宽度和高度来清除画布,代码如下:

var w=theCanvas.width;
var h=theCanvas.height;
context.clearRect(0,0,w,h);

尝试使用clearRect() 函数来绘制一个路径横跨画布的动画(见例 2-28)。通过使用第1章介绍的 setTimeOut()函数来完成动画。这个函数将重复地调用drawScreen()函数并更新路径的位置。由于这个操作相比在画布上一次绘制一个路径或图形要复杂得多,因此这里给出例子的完整代码,如下:

例2-28 使用clearRect()函数

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Chapter 2 Example 28: Animating a Path</title>
<script src="modernizr.js"></script>
<script type="text/javascript">
window.addEventListener('load', eventWindowLoaded, false);
function eventWindowLoaded() {

  canvasApp();

}

function canvasSupport () {
  return Modernizr.canvas;
}

function canvasApp(){

  if (!canvasSupport()) {
       return;
  }else{
    var theCanvas = document.getElementById('canvas');
    var context = theCanvas.getContext('2d');
  }
  var yOffset=0;

  function drawScreen(){

    context.clearRect(0,0,theCanvas.width,theCanvas.height);

    var currentPath=context.beginPath();
    context.strokeStyle = "red";
    context.lineWidth=5;
    context.moveTo(0, 0+yOffset);
    context.lineTo(50, 0+yOffset);
    context.lineTo(50,50+yOffset);
    context.stroke();
    context.closePath();
       yOffset+=1;
}

在例2-28中,首先创建一个命名为yOffset的变量,并赋值为0。下一步,在draw Screen()函数中添加一个画布清除函数。然后绘制路径,并在y轴坐标值yOffset上累加。

如第1章所示,创建一个gameLoop()函数并调用一次,在该函数中使用setTimeout()函数每20ms递归调用自身,这将导致drawScreen()函数反复被调用。在draw Screen()函数的底部,只需每次将yOffset加1,就可以创建路径向下移动的动画效果。

时间: 2024-12-10 16:10:41

《HTML5 canvas开发详解(第2版)》——2.11 清除画布的方法的相关文章

《HTML5 canvas开发详解(第2版)》——导读

前言第2版介绍自从本书第1版发行之后,在过去的两年里,HTML5 Canvas的使用有了突飞猛进的增长.本书的第1版可以称得上是第一批介绍Canvas的专著之一.在我们为自己的快速而感到自豪同时也意味着我们曾经独自进行了大量的研究和探索.早在2011年,只有极少数HTML5 Canvas应用的例子和教程.但在2013年情形发生了改变.现在有许多关于HTML5 Canvas的资源可供选择,从框架到API,有许多网站和书籍进行专门的阐述.为了编写第2版,我们进行了大量艰辛的工作来检查在第1版中哪些部

《HTML5 canvas开发详解(第2版)》——1.6 HTML5 Canvas版“Hello World!”

1.6 HTML5 Canvas版"Hello World!" 如前所述,将Canvas放入HTML5页面时第一件要做的事就是,看看整个页面是否已经加载,并且开始操作前是否所有HTML元素都已展现.在用Canvas处理图像和声音的时候,这点会非常重要. 为此,这里要使用JavaScript的事件.当定义的事件发生时,事件从对象发出.其他对象监听事件,这样就可以基于事件进行处理.用JavaScript可以监听对象的一些常见事件,包括键盘输入.鼠标移动以及加载结束. 第一个需要监听的事件是

《HTML5 canvas开发详解(第2版)》——第1章 HTML5 Canvas简介1.1 什么是HTML5

第1章 HTML5 Canvas简介 HTML5是新一代的HTML,即超文本标记语言.HTML从1993年第一次标准化后,便奠定了万维网的基础.HTML通过使用将标签用尖括号(< >)括起来的方式定义Web页面内容. HTML5 Canvas是屏幕上的一个由JavaScript控制的即时模式位图区域.即时模式是指在画布上呈现像素的方式,HTML Canvas通过JavaScript调用Canvas API,在每一帧中完全重绘屏幕上的位图.作为一名程序员,所要做的就是在每一帧渲染之前设置屏幕的显

《HTML5 Canvas开发详解》——1.5 HTML5 Canvas版“Hello World!”

1.5 HTML5 Canvas版"Hello World!" 如前所述,将Canvas放入HTML5页面时第一件要做的事,就是看看整个页面是否已经加载,并且开始操作前是否所有HTML元素都已展现.用Canvas处理图像和声音的时候这点会非常重要. 为此,这里要使用JavaScript的事件.当定义的事件发生时,事件从对象发出.其他对象监听事件,这样就可以基于事件进行处理.用JavaScript可以监听对象的一些常见事件,包括键盘输入.鼠标移动以及加载结束. 第一个需要监听的事件是wi

《HTML5 canvas开发详解(第2版)》——1.11 动画版本的Hello World

1.11 动画版本的Hello World "Hello World"和"猜字母"本身都是不错的示例,但是它们都没能回答出"为什么"--究竟为什么要使用HTML5 Canvas?自创立以来,静态的图像和文字就是HTML的领域,那么画布的不同之处在哪里呢?要回答这个问题,需要创建第二个"Hello World"示例.这个示例将介绍画布与HTML上的其他显示方式的最大不同之处:动画.在这个示例中,将为"Hello Wor

《HTML5 canvas开发详解(第2版)》——1.9 HTML5 Canvas对象

1.9 HTML5 Canvas对象 Canvas对象是通过在HTML页面的< body >部分中放置< canvas >标签创建的,也可以通过以下代码创建画布实例. var theCanvas = document.createElement("canvas"); Canvas对象有两个相关的属性和方法可以通过JavaScript访问:width和height.这些属性显示当前HTML页面创建的画布的宽度和高度.这里需要强调的是,这两个属性并不是只读的.例如,

《HTML5 canvas开发详解(第2版)》——1.8 2D环境及其当前状态

1.8 2D环境及其当前状态 通过调用Canvas对象的getContext()方法可以获得HTML5的2D环境对象(Canvas RenderingContext2D对象).所有操作都要通过该对象进行.CanvasRenderingContext2D对象包含了在画布上绘图所需的所有方法和属性.CanvasRenderingContext2D(简称环境,后同)采用画布左上角为原点(0,0)的笛卡尔坐标系,坐标轴向右.向下为正方向. 然而,所有这些属性和方法都与当前状态关联使用.当前状态是一个必须

《HTML5 canvas开发详解(第2版)》——2.14 内容预告

2.14 内容预告 本章讨论了很多基础内容,介绍了创建简单和复杂形状的方式,以及如何在画布上绘制和变换这些形状.本章还讨论了如何组合.旋转.缩放.平移.填充这些形状以及为它们创建阴影.不过,HTML5 Canvas探索之旅才刚刚开始.

《HTML5 canvas开发详解(第2版)》——第2章 在Canvas上绘图2.1 本章基本文件设置

第2章 在Canvas上绘图 HTML5 Canvas的使用是以强大的绘图.着色和基本二维形状变换为基础的.然而,可供选择的内建形状相对有限,程序员可以通过一组称作路径的线段来绘制出想要的形状.2.4节将涉及相关内容. 提示可以采用在线形式很好地了解HTML5 Canvas API.WSC网站上有详尽且不断更新的参考,具体地描述了Canvas 2D绘图API的功能.然而,这个在线参考缺少使用API的具体例子.本书避免简单地介绍各个参数的使用,将花时间通过创建示例来解释并探索尽可能多的功能.2.1