用鼠标任意画线.docx
- 文档编号:7119400
- 上传时间:2023-01-20
- 格式:DOCX
- 页数:30
- 大小:23.90KB
用鼠标任意画线.docx
《用鼠标任意画线.docx》由会员分享,可在线阅读,更多相关《用鼠标任意画线.docx(30页珍藏版)》请在冰豆网上搜索。
用鼠标任意画线
用鼠标任意画线
效果:
可按住鼠标任意画线,可作简单的涂鸭工具
代码:
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=x+4/(Math.sqrt((toY-fromY)*(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toX-fromX); y=y+4/(Math.sqrt((toY-fromY)*(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toY-fromY); eval(targetMC).lineTo(x,y); x=x+4/(Math.sqrt((toY-fromY)*(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toX-fromX); y=y+4/(Math.sqrt((toY-fromY)*(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toY-fromY); eval(targetMC).moveTo(x,y); } } createEmptyMovieClip("obj",1);//建一空影片 DrawDottedLine("_root.obj",1,10,10,200,300);//调用函数 从场景的左上角到鼠标画虚线 代码: 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.lineto(x,y); //将绘图点移动到相当于短线长的,且与短线在同一直线的位置。 即一个空格 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(i this.t.lineTo(this.points[i].x,this.points[i].y); ++i; } this.lines=true; } }; Shape.prototype.fill=function(c,a){ if(this.points.length>1){ 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 this.t.lineTo(this.points[i].x,this.points[i].y); ++i; } this.t.endFill(); this.filled=true; } }; Shape.prototype.getX=function(){ if(this.points.length){ returnthis.points[this.points.length-1].x; } }; Shape.prototype.getY=function(){ if(this.points.length){ returnthis.points[this.points.length-1].y; } }; g=newShape(); g.addPoint(0,100); g.addPoint(100,100); g.addPoint(100,0); g.addPoint(0,0); g.fill(0x339900,100); g.draw(5,0x000000,100); 代码: 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制作。 *************"; //文本中的内容 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=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 鼠标 任意 画线