建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 图像设计 > Flash教程 >

Flash教程:用AS绘制各种图形

时间:2011-02-11 20:54来源: 作者: 点击:
Flash教程:用AS绘制各种图形

AS2.0这我们供给了一些绘图体例,操纵这些体例,我们可以绘制一些图形。下面来熟悉一下这些体例。首先是画直线,要画线应先确定线的类型等,AS供给的是:

lineStyle() 体例:该体例确定线条的类型。
常用款式:MC.lineStyle(粗细,颜色,透明度)。该体例还有其它一些参数,本文就不介绍了。
好比:my_mc. lineStyle(1,0xff0000,100)
这就指了然线条粗细为1,颜色是红色,透明度为100%。

有了线条样式后就可以画直线了,首先将画笔移到要起头画直线的肇端点上,AS供给了:
moveTo()体例:该体例将画笔移到起画点上。
用法:MC.moveTo(x,y);

起画点有了,就可以画线了,AS供给了:
lineTo()体例: 该体例将从起画点到终点画一条直线,并将起画点移到终点。
用法:MC.lineTo(x,y)
有了上面的三个体例就可以画直线了,下面就画一条:

this.lineStyle(1,0xff0000,100);
this.moveTo(0,0);
this.lineTo(200,200);


测试影片,上面的代码画了一条从(0,0)到(200,200)的红色直线。

下面扩展一下,画个三角形:

this.lineStyle(1,0xff0000,100);
this.moveTo(200,200);
this.lineTo(300,200);
this.lineTo(250,300);
this.lineTo(200,200);


我想我们绘画,必定不会甘愿宁可只画一些线条,还想画一些外形,下面的体例对我们这种愿望供给了可能。

beginFill()体例:该体例从字面上就能理解,起头填充。
用法:MC.beginFill(颜色,透明度)

endFill()体例:用beginFill()中的颜色填充图形。
好比将上面的三角形填上蓝色:

this.lineStyle(1,0xff0000,100);
this.beginFill(0x0000ff,100);
this.moveTo(200,200);
this.lineTo(300,200);
this.lineTo(250,300);
this.lineTo(200,200);
ebdFill();


测试影片,会看到一个红色笔触蓝色填充的三角形。

若是想要无笔触的三角形,那么上面第一句不要就行了。

看起来到今朝为止,我们已经自认为已学会了用AS绘图了,很想伎痒画点什么玩意儿,好吧,就知足你吧,下面我们来画一个五星吧^_^

 


用矩形工具画一个与舞始一样大的黑色矩形。为什么要画这个?很简单,黑色布景下红五星要雅观些。为什么不直接将文档的布景色设为黑色?因为良多网站插入的swf文件默认是透明的,好比我们论坛。当然你完全可以连这个黑色矩形都用AS来完成。

将下列代码输入到帧动作面板中:

this.createEmptyMovieClip("wx_mc",this.getNextHighestDepth());
wx_mc._x = Stage.width/2;
wx_mc._y = Stage.height/2;
wx_mc.beginFill(0xFF0000,100);
wx_mc.moveTo(0,0);
wx_mc.lineTo(0,-100);
wx_mc.lineTo(25,-30);
wx_mc.lineTo(0,0);
wx_mc.endFill();
wx_mc.beginFill(0xee0202,100);
wx_mc.moveTo(0,0);
wx_mc.lineTo(0,-100);
wx_mc.lineTo(-25,-30);
wx_mc.lineTo(0,0);
wx_mc.endFill();
for(i=0;i<5;i++){
wx_mc.duplicateMovieClip("wx1"+i,this.getNextHighestDepth());
wx1 = eval("wx1"+i);
wx1._rotation = i*72;
}
this.createEmptyMovieClip("xg_mc",this.getNextHighestDepth());
xg_mc._x = Stage.width/2;
xg_mc._y= Stage.height/2;
xg_mc.lineStyle(1,0xeed600,100);
xg_mc.moveTo(0,-120);
xg_mc.lineTo(0,-140);
xg_mc.moveTo(10,-160);
xg_mc.lineTo(10,-180);
for(j=0;j<37;j++){
xg_mc.duplicateMovieClip("xg"+j,this.getNextHighestDepth());
xg1_mc = eval("xg"+j);
xg1_mc._rotation = j*10;
}

测试影片,结果出来了。

代码分析:

首先建立一个空的MC“wx_mc”用来绘制五星。并将wx_mc放到舞中心。
this.createEmptyMovieClip("wx_mc",this.getNextHighestDepth());
wx_mc._x = Stage.width/2;
wx_mc._y = Stage.height/2;
接下来画一个红色三角形,从下面的代码中可以看到,三角形的右下角在wx_mc的注册点上,即舞台中心,这一点很主要,因为我们后面要扭转这个三角形。
wx_mc.beginFill(0xFF0000,100);
wx_mc.moveTo(0,0);
wx_mc.lineTo(0,-100);
wx_mc.lineTo(25,-30);
wx_mc.lineTo(0,0);
wx_mc.endFill();
接下来,继续绘图又画了一个三角形,这个三角形与第一个三角形刚好水平相反,这样就组成了五星的一只角,而这个三角形的颜色比第一个三角形略深,这样就形成了立体感。
wx_mc.beginFill(0xee0202,100);
wx_mc.moveTo(0,0);
wx_mc.lineTo(0,-100);
wx_mc.lineTo(-25,-30);
wx_mc.lineTo(0,0);
wx_mc.endFill();
有了一只角了,要形成五星就简单了,复制5份,然后每份扭转360/5x份数,五星就绘成了。
for(i=0;i<5;i++){
wx_mc.duplicateMovieClip("wx1"+i,this.getNextHighestDepth());
wx1 = eval("wx1"+i);
wx1._rotation = i*72;
}
五星画好了,还想加些辉煌,那又新建一个MC,用来画辉煌,就在五星外围画一条直线,然后复制直线36份,每10度放一份就行了。用同样的体例画第二层辉煌。
this.createEmptyMovieClip("xg_mc",this.getNextHighestDepth());
xg_mc._x = Stage.width/2;
xg_mc._y= Stage.height/2;
xg_mc.lineStyle(1,0xeed600,100);
xg_mc.moveTo(0,-120);
xg_mc.lineTo(0,-140);
xg_mc.moveTo(10,-160);
xg_mc.lineTo(10,-180);
for(j=0;j<37;j++){
xg_mc.duplicateMovieClip("xg"+j,this.getNextHighestDepth());
xg1_mc = eval("xg"+j);
xg1_mc._rotation = j*10;
}

上面画的图形全数是直线的,这时我们又想画点花儿什么的,需要用到曲线,有画曲线的体例吗?有,下面就来进修


curveTo() 体例:该体例画一条由起画点经节制点到终点的一条曲线。
用法:MC. curveTo(节制点x,节制点y,终点x,终点y);

有了画曲线的体例那就画个花儿吧。


代码:

this.createEmptyMovieClip("mh_mc",this.getNextHighestDepth());
mh_mc._x = Stage.width /2;
mh_mc._y = Stage.height/2;
mh_mc.beginFill(0xff0000,100);
mh_mc.moveTo(0,0);
mh_mc.curveTo(-20,-25,-10,-45);
mh_mc.curveTo(0,-60,10,-45);
mh_mc.curveTo(20,-25,0,0);
mh_mc.endFill();
for(i=0;i<5;i++){
mh_mc.duplicateMovieClip("mh"+i,this.getNextHighestDepth());
mh1_mc = eval("mh"+i);
mh1_mc._rotation= i*72;
}


现实上这个花的画法跟五星差不多,只是这个是曲线的而已。

(责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片