CreateJs教程5章:easeljs中的图形Shape绘制
createjs主要是创建类似flash一样的动画的,创建动画必要先要有图形/形状,我们会将动画放在图形上,这样图形就能够运动起来了。
createjs.Shape创建形状
网页中有时候需要一些形状,如一朵小红花,一个笑脸,这时候就可以使用createjs的Shape对象,来创建形状,如下图:
这也是本课将讲解的案例,很多同学想知道老师长得有多帅,上面那幅图就是老师了的照片了,是不是很可爱啊。
createjs.Shape的原型
Shape是一个显示内容的对象,它包含了一个graphics对象,这个对象负责绘制图形。graphics包含了很多绘制图形的函数。
createjs.Shape的原型如下:
Shape ( graphics )
- graphics参数是要显示的图像的实例,如果不传这个参数,那么会生成一个新的图形的实例。graphics负责绘制图形,很多绘制函数都在graphics中定义。
graphics绘制笑脸
一个笑脸由如下几部分组成:
- 圆形的头,用drawCircle函数画圆
- 一张嘴,用弧形arc来绘制
- 2只眼睛,用drawCircle来绘制
drawSmiley就是我们封装的一个函数,这个函数就是用来绘制笑脸的,具体细节请大家认真看注释哦:
function drawSmiley() { // 创建一个形状对象 var s = new createjs.Shape(); // 获取形状中的图形对象graphics var g = s.graphics; // 绘制头部,笔触大小为10 g.setStrokeStyle(10, 'round', 'round'); // 笔触的颜色为黑色(#000) g.beginStroke("#000"); g.beginFill("#FC0"); g.drawCircle(0, 0, 100); //55,53 //Mouth g.beginFill(); // no fill g.arc(0, 0, 60, 0, Math.PI); //Right eye g.beginStroke(); // no stroke g.beginFill("#000"); g.drawCircle(-30, -30, 15); //Left eye g.drawCircle(30, -30, 15); return s; }
下面对drawSmiley这个函数涉及到的知识介绍如下,同学们把下面的知识学了之后,反过来,看drawSmiley这个函数,一定会有更多收获哦。
createjs中的graphics类介绍
graphics是图形类,图形类提供了很多矢量绘图函数,如绘制直线、圆形、弧形。
graphics有很多函数,这里,我们本课代码中使用的函数一一解释:
createjs设置画笔的笔触Stroke
画笔的笔触就像笔的粗细,如毛笔比圆珠笔粗,用来绘制边框的粗细和颜色,笔触也包含绘制的颜色等属性,setStrokeStyle函数用于设置笔触,其原型如下:
setStrokeStyle ( thickness [caps=0] [joints=0] [miterLimit=10] [ignoreScale=false] )
setStrokeStyle是graphics类的函数,其个参数含义为:
- thickness:一个数字,表示笔触的宽度
- [caps=0]:可选参数,caps表示2条线之间连接处,用什么形状连接起来,0表示直接对接,1表示用圆形对接,2表示正方形
- [joints=0]
- [miterLimit=10] :
https://www.createjs.com/docs/easeljs/classes/Graphics.html#method_setStrokeStyle
开始笔触beginStroke
beginStroke 设置笔触的颜色,并开始一个笔触,不调用这个函数,边框就不会被绘制:
beginStroke ( color ) Graphics
其参数和返回值含义为:
- color: 笔触的颜色,如#FF0000、red、rgba(255,0,0,0.5),这3种表示方式都是可以的
- Graphics:返回值是当前的Graphics对象,这是为了级联调用返回的
与beginStroke对应的函数是endStroke (),表示结束一个笔触
endStroke () Graphics
- Graphics:返回值是当前的Graphics对象,这是为了级联调用返回的
开始填充颜色beginFill
beginFill用指定的颜色做一个填充,endFill表示停止填充,其原型为:
beginFill ( color ) Graphics
beginFill的参数及返回值含义为:
- color: 填充的颜色,如#FF0000、red、rgba(255,0,0,0.5),这3种表示方式都是可以的
- Graphics:返回值是当前的Graphics对象,这是为了级联调用返回的
createjs绘制圆形函数drawCircle
drawCircle ( x y radius ) Graphics
其参数含义为:
- x: 圆心x坐标
- y: 圆心y坐标
- radius:圆的半径
举个例子:
g.setStrokeStyle(1, 'round', 'round'); g.beginStroke("#000"); g.drawCircle(0, 0, 100); g.endStroke()
createjs绘制弧形函数arc
arc用于绘制弧形,弧形是是未封闭的圆,其原型如下:
arc ( x y radius startAngle endAngle anticlockwise ) Graphics
结合下图来说明各个参数:
- x:圆弧中心的x坐标
- y:圆弧中心的x坐标
- radius:圆弧的半径
- startAngle:开始角以弧度计. (弧的圆形的三点钟位置是0度)
- endAngle:结束角以弧度计,
- anticlockwise:是逆时针还是顺时针 false:顺时针 (默认值),true:逆时针
弧度不是圆,所以结束角度减去开始角不是360度。
下面的代码绘制了一个中心点为(100,100),半径为20,开始角为0,结束角为Math.PI*1.5的。
arc(100, 100, 100, 0, Math.PI*1.5);