用Flash AS实现画图的详细讲解.docx

上传人:b****6 文档编号:3919706 上传时间:2022-11-26 格式:DOCX 页数:9 大小:19.50KB
下载 相关 举报
用Flash AS实现画图的详细讲解.docx_第1页
第1页 / 共9页
用Flash AS实现画图的详细讲解.docx_第2页
第2页 / 共9页
用Flash AS实现画图的详细讲解.docx_第3页
第3页 / 共9页
用Flash AS实现画图的详细讲解.docx_第4页
第4页 / 共9页
用Flash AS实现画图的详细讲解.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

用Flash AS实现画图的详细讲解.docx

《用Flash AS实现画图的详细讲解.docx》由会员分享,可在线阅读,更多相关《用Flash AS实现画图的详细讲解.docx(9页珍藏版)》请在冰豆网上搜索。

用Flash AS实现画图的详细讲解.docx

用FlashAS实现画图的详细讲解

用FlashAS实现画图的详细讲解

代码:

createEmptyMovieClip("xian",1);with(xian){_root.onMouseMove=function(){if(draw){_root.lineStyle(0,0x000000,100);_root.lineTo(_root._xmouse,_root._ymouse);}};_root.onMouseDown=function(){draw=true;_root.moveTo(_root._xmouse,_root._ymouse);};_root.onMouseUp=function(){draw=false;};}

  用鼠标任意画直线

效果:

类似flash中的直线工具

代码:

createEmptyMovieClip("line",n);with(line){lineStyle(1,0x000000,100);moveTo(0,0);lineTo(100,100);line._visible=0;}_root.onMouseDown=function(){qidian_x=_root._xmouse;qidian_y=_root._ymouse;with(line){_x=qidian_x;_y=qidian_y;_xscale=0;_yscale=0;_visible=1;}};_root.onMouseMove=function(){endX=_root._xmouse;endY=_root._ymouse;if(_root.line!

="_root.line"&&key.isdown(16)){if(Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)){setProperty(_root.line,_xscale,endX-qidian_x);setProperty(_root.line,_yscale,endX-qidian_x);}else{setProperty(_root.line,_xscale,endY-qidian_y);setProperty(_root.line,_yscale,endY-qidian_y);}}else{setProperty(_root.line,_xscale,endX-qidian_x);setProperty(_root.line,_yscale,endY-qidian_y);}};_root.onMouseUp=function(){if(_root._xmouse-qidian_x!

=0){i++;Objectx="Copy"addi;duplicateMovieClip(_root.line,Objectx,i);setProperty(Objectx,_x,qidian_x);setProperty(Objectx,_y,qidian_y);_root.i=i;}setProperty(_root.line,_visible,0);};

  用鼠标任意画矩形

效果:

类似flash中的矩形工具

代码:

createEmptyMovieClip("line",n);with(line){lineStyle(0.1,0x000000,100);moveTo(0,0);lineTo(100,0);lineTo(100,100);lineTo(0,100);lineTo(0,0);line._visible=0;}_root.onMouseDown=function(){qidian_x=_root._xmouse;qidian_y=_root._ymouse;with(line){_x=qidian_x;_y=qidian_y;_xscale=0;_yscale=0;_visible=1;}};_root.onMouseMove=function(){endX=_root._xmouse;endY=_root._ymouse;if(_root.line!

="_root.line"&&key.isdown(16)){if(Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)){setProperty(_root.line,_xscale,endX-qidian_x);setProperty(_root.line,_yscale,endX-qidian_x);}else{setProperty(_root.line,_xscale,endY-qidian_y);setProperty(_root.line,_yscale,endY-qidian_y);}}else{setProperty(_root.line,_xscale,endX-qidian_x);setProperty(_root.line,_yscale,endY-qidian_y);}};_root.onMouseUp=function(){if(_root._xmouse-qidian_x!

=0){i++;Objectx="Copy"addi;duplicateMovieClip(_root.line,Objectx,i);setProperty(Objectx,_x,qidian_x);setProperty(Objectx,_y,qidian_y);_root.i=i;}setProperty(_root.line,_visible,0);};

  用鼠标任意画圆、椭圆

效果:

类似flash中的工具

代码:

createEmptyMovieClip("line",n);with(line){for(n=1;n<400;n++){a=50*Math.cos(n*Math.PI/180);b=50*Math.sin(n*Math.PI/180);c=50*Math.cos((n+1)*Math.PI/180);d=50*Math.sin((n+1)*Math.PI/180);lineStyle(0.01,0x000000,50);moveTo(a+50,b+50);lineTo(c+50,d+50);}line._visible=0;}_root.onMouseDown=function(){qidian_x=_root._xmouse;qidian_y=_root._ymouse;with(line){_x=qidian_x;_y=qidian_y;_xscale=0;_yscale=0;_visible=1;}};_root.onMouseMove=function(){endX=_root._xmouse;endY=_root._ymouse;if(_root.line!

="_root.line"&&key.isdown(16)){if(Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)){setProperty(_root.line,_xscale,endX-qidian_x);setProperty(_root.line,_yscale,endX-qidian_x);}else{setProperty(_root.line,_xscale,endY-qidian_y);setProperty(_root.line,_yscale,endY-qidian_y);}}else{setProperty(_root.line,_xscale,endX-qidian_x);setProperty(_root.line,_yscale,endY-qidian_y);}};_root.onMouseUp=function(){if(_root._xmouse-qidian_x!

=0){i++;Objectx="Copy"addi;duplicateMovieClip(_root.line,Objectx,i);setProperty(Objectx,_x,qidian_x);setProperty(Objectx,_y,qidian_y);_root.i=i;}setProperty(_root.line,_visible,0);};

两定点画虚线

代码:

MovieClip.prototype.dashTo=function(startPoint,destPoint,dashLength,spaceLength){varx=destPoint.x-startPoint.x;vary=destPoint.y-startPoint.y;varhyp=Math.sqrt((x)*(x)+(y)*(y));varunits=hyp/(dashLength+spaceLength);vardashSpaceRatio=dashLength/(dashLength+spaceLength);vardashX=(x/units)*dashSpaceRatio;varspaceX=(x/units)-dashX;vardashY=(y/units)*dashSpaceRatio;varspaceY=(y/units)-dashY;this.moveTo(startPoint.x,startPoint.y);while(hyp>0){startPoint.x+=dashX;startPoint.y+=dashY;hyp-=dashLength;if(hyp<0){startPoint.x=destPoint.x;startPoint.y=destPoint.y;}this.lineTo(startPoint.x,startPoint.y);startPoint.x+=spaceX;startPoint.y+=spaceY;this.moveTo(startPoint.x,startPoint.y);hyp-=spaceLength;}this.moveTo(destPoint.x,destPoint.y);};createEmptyMovieClip("DrawingSpace",1);with(DrawingSpace){lineStyle(0,0x000000,100);dashTo({x:

300,y:

0},{x:

0,y:

400},3,10);}

从一点到另一点画虚线

代码:

functionDrawDottedLine(targetMC,linewidth,fromX,fromY,toX,toY){//targetMC:

目标MovieClip德InstanceName;//linewidth:

线宽;//fromX,fromY:

从(fromX,fromY)处开始画;//toX,toY:

画到(toX,toY)处;varx,y;eval(targetMC).lineStyle(lineWidth,0x000000,100);//线的颜色是黑色(0x000000)eval(targetMC).moveTo(fromX,fromY);x=fromX;y=fromY;while(x

  从场景的左上角到鼠标画虚线

代码:

x=0;y=0;//场景左上角的坐标l=0;mx=_root._xmouse;my=_root._ymouse;//鼠标的坐标ml=Math.sqrt(mx*mx+my*my);//三角形的斜边长_root.moveto(0,0);//画线的起点为场景左上角的坐标_root.linestyle(0.1,0x000000,100);//下面用三角函数求出每一段虚线的端点坐标,然后用循环重复画一条短线和空格。

直到线的终点位置。

while(l

即一个空格l+=5;x=l*mx/ml;y=l*my/ml;_root.moveto(x,y);}

  不错的画线函数,自定义点、线的样式、填充

functionShape(){this.points=[];this.lines=false;tthis.filled=false;tthis.lineStyle=null;this.t=eval(_target);}Shape.prototype.addPoint=function(x,y){this.points[this.points.length]={x:

x,y:

y};};Shape.prototype.removePoint=function(){this.points.pop();};Shape.prototype.draw=function(w,c,a){if(this.points.length>1){this.lineStyle={w:

w,c:

c,a:

a};this.t.lineStyle(w,c,a);vari=0;varl=this.points.length;while(i1){if(this.lines){this.clear();this.t.lineStyle(this.lineStyle.w,this.lineStyle.c,this.lineStyle.a);}else{this.t.lineStyle(0,0xFFFFFF,0);if(this.filled){this.clear();}}this.t.beginFill(c,a);vari=0;varl=this.points.length;while(i

  系列讲座二,用AS脚本画羽毛、画正余弦、画心脏线、画螺旋线、画旋转的长方体、画烛光、画十四面体……

  action画羽毛作者:

东方暖阳

代码:

onMouseDown=init;functioninit(){//创建羽毛,并设置羽毛各个参数及对函数的调用feather=createEmptyMovieClip("f"+i,10000+i++);feather.swapDepths(Math.random()*10000);feather._x=_xmouse;feather._y=_ymouse;feather._rotation=-90+Math.random()*40-20;col=Math.random()*255<<8;radius=Math.random()*20+20;twist=Math.random()+.5;len=Math.random()*100+50;taper=Math.random()*.05+.95;x=0;onEnterFrame=grow;}functiongrow(){//创建函数来定义羽毛的生长、定义羽毛的停止生长条件angle=Math.sin(fa+=twist)*Math.PI/4;feather.moveTo(x,y);feather.lineStyle(1,col,50);feather.lineTo(x+Math.cos(angle)*radius,y+Math.sin(angle)*radius);radius*=taper;if(x++>len){deleteonEnterFrame;}};

  用as画圆:

  代码:

  思路:

用不间断的連线形成一个圆,实际上一个正360度多边形

应用:

按此法可画任意的图形,如抛物线,螺旋线等,只需把方程修改即可,第2个代码就是一个应用,画椭圆。

_root.onLoad=function(){System.Usecodepage=true;//这句我也不知道什么意思,加了以后就支持中文了,是从“好笨”那里学来的,誰知道告诉我,谢谢_root.createTextField("txtLoad",151,50,280,400,30);//建一文本,名、层次、x、y、宽度、高度_root.txtLoad.text="这是一个画线的应用。

zjs35制作。

zjs35@";//文本中的内容daxiao=100;//圆的半径yuanxin_x=200;yuanxin_y=150;//圆心的坐标};_root.onEnterFrame=function(){a=daxiao*Math.cos(n*Math.PI/180);b=daxiao*Math.sin(n*Math.PI/180);//根据圆的方程定义一个起点c=daxiao*Math.cos((n+1)*Math.PI/180);d=daxiao*Math.sin((n+1)*Math.PI/180);//定义一个终点createEmptyMovieClip("yuan",n);with(yuan){lineStyle(2,0x000000,50);//定义线的样式moveTo(a+yuanxin_x,b+yuanxin_y);lineTo(c+yuanxin_x,d+yuanxin_y);//从起点到终点画线}if(n<=360){n=n+1;}//控制画线的长度,刚好一个圆,1表示画线的速度};

  画正多边形

  代码:

这是一个画正多边形的程序,思路:

把一个圆划分成n等分,把这些点連接起来,下面是按钮上代码,另外在场景中建两可输入文本框,名为aa,bb。

on(release){daxiao=aa;//获取多边形的大小,以像素为单位bianshu=bb;//获取边数,整数,从3开始,到无穷大,n多边形就是圆jiaodu=360/bianshu;//得到每个等分的角度for(n=1;n<=bianshu;n++){//for循环,由bianshu来控制循环的次数,也就是要画的多边形的边数a=daxiao*math.cos(n*jiaodu*math.pi/180);b=daxiao*math.sin(n*jiaodu*math.pi/180);//定义起点的坐标c=daxiao*math.cos((n+1)*jiaodu*math.pi/180);d=daxiao*math.sin((n+1)*jiaodu*math.pi/180);//定义终点的坐标createEmptyMovieClip("xian",n);//创建一个空影片xian,n为层次with(xian){lineStyle(2,0xff0000,100);//定义线的大小、颜色、透明度moveTo(a+300,b+200);lineTo(c+300,d+200);//从起点到终点画线}}}

  用as画字母F作者:

寒蓝

  代码:

//创建一个空的mc:

_root.createEmptyMovieClip("myMc",0);//定义mc的位置:

myMc._x=100;myMc._y=50;//定义填充:

myMc.beginFill(0xff0000,100);colors=[0xFF0000,0xffffff];alphas=[100,100];ratios=[0,0xFF];matrix={a:

50,b:

0,c:

0,d:

0,e:

50,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1