23-动态调整画布尺寸
3.5.1 动态调整画布尺寸
在本章开发的代码中,创建了对HTML页面上Canvas对象的引用(id为canvasOne)并使用其获得Canvas对象的2D环境。
var theCanvas = document.getElementById("canvasOne");
var context = theCanvas.getContext("2d");
尽管2D环境非常重要(这里需要用它在画布上绘图)但是本书没有讨论Canvas对象本身。本章使用Canvas对象的width属性在画布上使文本居中。同时,Canvas对象也有名为height的属性,这两个属性可以用来动态地调整Canvas对象的尺寸(按照实际需要)。在类似以下情况中,会使用到此方法。
- 将画布更新到加载的video对象的实际尺寸。
- 页面加载后,动态更新动画画布。
- 其他更具创意的应用,比如本章接下来将要尝试的应用。
调整画布尺寸非常容易,只需设置Canvas对象的width和height属性,然后重绘画布内容即可。
Canvas.width = 600;
Canvas.height = 500;
drawScreen();
Canvas 2D API将这个功能描述为“缩放”画布,但实际上并不是这样的,而是画布内容在同样尺寸和同样位置简单地重绘到更大的画布中。而且,如果没有重绘画布内容,它看起来是无效的,那么画布将清空回到空白状态。要正确缩放画布,应使用CSS的width和height属性,如后面将要描述的那样。在第2章和第4章,对使用矩阵变换缩放画布都有讨论。
本节将添加随意调整画布尺寸的功能,并给出一个好的示例来说明如何调整画布的大小,以及如何调整已经绘制的内容。
首先,为HTML