功能分类: Canvas Applab JavaScript 少儿编程
创建一个指定 id
的画布控件,[可选] 设置其 width
宽度及 height
高度。
在页面里 canvas 画布控件是一个矩形区域,在这个区域里用户可以绘制图形图片。turtle 绘画操作实际就是在一个 canvas 画布中进行的。
在使用 canvas 类别里的相关代码模块或代码之前,需要先创建 canvas 画布控件。使用 createCanvas()
方法如果不指定尺寸(宽度、高度),画布会默认为 APP 屏幕尺寸(即满屏显示)。每次调用 createCanvas()
,都会创建一个新的画布,这个画布会有一个 1 像素宽度的边框,边框颜色为黑色("black"),填充颜色为透明颜色("transparent")。每次在屏幕上只有一个画布会为 active 激活状态,修改相关属性时只对当前使用的(也即当前激活状态的)画布有效。相关的方法如:line() 以及 rect(),只能在画布内绘制可见图形图像。如果绘制内容位置超出画布边界,所绘制内容将无法显示(不可见)。
当 APP 里第一次使用 createCanvas()
方法时,这个方法创建的画布会默认为当前激活画布。一些方法如:line() or setStrokeWidth() 只会在当前激活状态的画布内生效。在这之后创建其他画布时,默认不会对当前激活画布产生影响。如果要切换当前激活状态画布,需要使用 setActiveCanvas() 方法。
// 创建一个 id 为 canvas1 的全屏画布
// 并在画布的最左上角 (0,0) 位置画一矩形
createCanvas("canvas1");
rect(0, 0, 100, 100);
示例代码:相对位置 在画布里绘制图形图像时,使用的坐标是相对坐标。即以画布左上角为 (0,0) 起始点的坐标,而不是相对整个屏幕的坐标。
// 在画布里绘制图形图像时,使用的坐标是相对坐标。即以画布左上角为 (0,0) 起始点的坐标,而不是相对整个屏幕的坐标。
createCanvas("canvas1");
setPosition("canvas1", 50, 50);
rect(0, 0, 100, 100);
示例代码:画布内外 在画布上绘制图形图像时,所绘制内容只有在画布内的部分是可见的,超出画布的内容将不可见。
// 在画布上绘制图形图像时,所绘制内容只有在画布内的部分是可见的,超出画布的内容将不可见。
createCanvas("canvas1", 50, 50);
rect(25, 25, 100, 100);
示例代码:多个画布 在有多个画布时,绘制图形图像的方法及相关操作只对当前激活状态画布有效,其他画布不受影响。
// 在有多个画布时,绘制图形图像的方法及相关操作只对当前激活状态画布有效,其他画布不受影响。
createCanvas("canvas1");
setPosition("canvas1", 50, 50);
setStrokeColor("red");
rect(0, 0, 100, 100);
createCanvas("canvas2", 200, 200);
setActiveCanvas("canvas2");
setPosition("canvas2", 60, 0);
circle(0, 100, 50);
circle(100, 100, 50);
circle(200, 100, 50);
createCanvas(id, width, height);
名称 | 类型 | 必需 | 参数描述 |
---|---|---|---|
[id] | string | Yes | canvas 画布 的 id 唯一标识。在事件响应处理时以及其他涉及修改控件属性的方法里,通过这个 id 可以唯一定位到控件。必须以字母开头,不能包含空格,可以包含字母、数字、减号 - 以及下划线 _ 。 |
[width] | number | No | 指定画布宽度(单位:像素)。如果未指定,则默认等于屏幕宽度。 |
[height] | number | No | 指定画布高度(单位:像素)。如果未指定,则默认等于屏幕高度。 |
没有返回值。只在显示结果页面体现代码执行前后变化。
id
唯一标识。通过这个唯一标识就可以像对其他控件一样通过相关方法进行操作。