用鼠标任意画线.docx

上传人:b****1 文档编号:13761843 上传时间:2023-06-17 格式:DOCX 页数:36 大小:23.85KB
下载 相关 举报
用鼠标任意画线.docx_第1页
第1页 / 共36页
用鼠标任意画线.docx_第2页
第2页 / 共36页
用鼠标任意画线.docx_第3页
第3页 / 共36页
用鼠标任意画线.docx_第4页
第4页 / 共36页
用鼠标任意画线.docx_第5页
第5页 / 共36页
用鼠标任意画线.docx_第6页
第6页 / 共36页
用鼠标任意画线.docx_第7页
第7页 / 共36页
用鼠标任意画线.docx_第8页
第8页 / 共36页
用鼠标任意画线.docx_第9页
第9页 / 共36页
用鼠标任意画线.docx_第10页
第10页 / 共36页
用鼠标任意画线.docx_第11页
第11页 / 共36页
用鼠标任意画线.docx_第12页
第12页 / 共36页
用鼠标任意画线.docx_第13页
第13页 / 共36页
用鼠标任意画线.docx_第14页
第14页 / 共36页
用鼠标任意画线.docx_第15页
第15页 / 共36页
用鼠标任意画线.docx_第16页
第16页 / 共36页
用鼠标任意画线.docx_第17页
第17页 / 共36页
用鼠标任意画线.docx_第18页
第18页 / 共36页
用鼠标任意画线.docx_第19页
第19页 / 共36页
用鼠标任意画线.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

用鼠标任意画线.docx

《用鼠标任意画线.docx》由会员分享,可在线阅读,更多相关《用鼠标任意画线.docx(36页珍藏版)》请在冰点文库上搜索。

用鼠标任意画线.docx

用鼠标任意画线

用鼠标任意画线

效果:

可按住鼠标任意画线,可作简单的涂鸭工具

代码:

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=

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2