用FlashAS实现画图的详细讲解( 转)

用Action Script进行控制,可以随机画出各种图形,该教程为系列讲座,提供了许多很有用的AS代码……

使用方法:把代码拷到帧中就可看到效果

用鼠标任意画线

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

代码:

createEmptyMovieClip(
"xian",1);

with (xian) {

_root.onMouseMove 
= function() {

if (draw) {

_root.lineStyle(
0,0x000000100);

_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(
10x000000100);

moveTo(
00);

lineTo(
100100);

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" add i;

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.10x000000100);

moveTo(
00);

lineTo(
1000);

lineTo(
100100);

lineTo(
0100);

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" add i;

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++) {

= 50*Math.cos(n*Math.PI/180);

= 50*Math.sin(n*Math.PI/180);

= 50*Math.cos((n+1)*Math.PI/180);

= 50*Math.sin((n+1)*Math.PI/180);

lineStyle(
0.010x00000050);

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" add i;

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) {

var x = destPoint.x-startPoint.x;

var y = destPoint.y-startPoint.y;

var hyp = Math.sqrt((x)*(x)+(y)*(y));

var units = hyp/(dashLength+spaceLength);

var dashSpaceRatio = dashLength/

(dashLength
+spaceLength);

var dashX = (x/units)*dashSpaceRatio;

var spaceX = (x/units)-dashX;

var dashY = (y/units)*dashSpaceRatio;

var spaceY = (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(
00x000000100);

dashTo({x:
300, y:0}, {x:0, y:400}, 310);

}





从一点到另一点画虚线

代码:

function DrawDottedLine(targetMC,

linewidth, fromX, fromY, toX, toY) {

// targetMC: 目标MovieClip德InstanceName;

// linewidth: 线宽;

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

// toX, toY: 画到(toX, toY)处;

var x, y;

eval(targetMC).lineStyle(lineWidth, 
0x000000100);

// 线的颜色是黑色(0x000000)

eval(targetMC).moveTo(fromX, fromY);

= fromX;

= fromY;

while (x<toX) {

= x+4/(Math.sqrt((toY-fromY)*

(toY
-fromY)+(toX-fromX)*(toX-fromX)))*(toX-fromX);

= y+4/(Math.sqrt((toY-fromY)*

(toY
-fromY)+(toX-fromX)*(toX-fromX)))*(toY-fromY);

eval(targetMC).lineTo(x, y);

= x+4/(Math.sqrt((toY-fromY)*

(toY
-fromY)+(toX-fromX)*(toX-fromX)))*(toX-fromX);

= 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"11010200300);

//调用函数



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

代码:

= 0;

= 0;//场景左上角的坐标

= 0;

mx 
= _root._xmouse;

my 
= _root._ymouse;//鼠标的坐标

ml 
= Math.sqrt(mx*mx+my*my);//三角形的斜边长

_root.moveto(
00);//画线的起点为场景左上角的坐标

_root.linestyle(
0.10x000000100);

// 下面用三角函数求出每一段虚线的端点坐标,

然后用循环重复画一条短线和空格。直到线的终点位置。

while (l<ml) {

+= 5;

// 短线的长

= l*mx/ml;

= l*my/ml;

_root.lineto(x, y);

// 将绘图点移动到相当于短线长的,且与短线在同一直线的位置。即一个空格

+= 5;

= l*mx/ml;

= l*my/ml;

_root.moveto(x, y);

}



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

function Shape() {

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);var i = 0;

var l = this.points.length;

while (i<l) {

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,0xFFFFFF0);

if (this.filled){

this.clear();

}

}

this.t.beginFill(c, a);

var i = 0;

var l = this.points.length;

while (i<l) {

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) {

return this.points[this.points.length-1].x;

}

};

Shape.prototype.getY 
= function() {

if (this.points.length) {

return this.points[this.points.length-1].y;

}

};

= new Shape();

g.addPoint(
0100);

g.addPoint(
100100);

g.addPoint(
1000);

g.addPoint(
00);

g.fill(
0x339900100);

g.draw(
50x000000100);



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

action画羽毛 作者:东方暖阳

代码:

onMouseDown
=init;

function init() {//创建羽毛,并设置羽毛各个参数及对函数的调用

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;

}

function grow() {//创建函数来定义羽毛的生长、

定义羽毛的停止生长条件

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) {

delete onEnterFrame;

}

};



用as画圆:

代码:

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

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

_root.onLoad 
= function() {

System.Usecodepage 
= true;

// 这句我也不知道什么意思,加了以后就支持中文了,是从

“好笨”那里学来的,侦知道告诉我,谢谢

_root.createTextField(
"txtLoad"1515028040030);

// 建 一文本,名、层次、x、y、宽度、高度

_root.txtLoad.text 
= "这是一个画线的应用。

zjs35制作。zjs35@163.com
";

// 文本中的内容

daxiao 
= 100;//圆的半径

yuanxin_x 
= 200;

yuanxin_y 
= 150;//圆心的坐标

};

_root.onEnterFrame 
= function() {

= daxiao*Math.cos(n*Math.PI/180);

= daxiao*Math.sin(n*Math.PI/180);//根据圆的方程定义一个起点

= daxiao*Math.cos((n+1)*Math.PI/180);

= daxiao*Math.sin((n+1)*Math.PI/180);//定义一个终点

createEmptyMovieClip(
"yuan", n);

with (yuan) {

lineStyle(
20x00000050);//定义线的样式

moveTo(a
+yuanxin_x, b+yuanxin_y);

lineTo(c
+yuanxin_x, d+yuanxin_y);//从起点到终点画线

}

if (n<=360) {

= 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来控制循环的次数,也就是要画的多边形的边数

= daxiao*math.cos(n*jiaodu*math.pi/180);

= daxiao*math.sin(n*jiaodu*math.pi/180);

//定义起点的坐标

= daxiao*math.cos((n+1)*jiaodu*math.pi/180);

= daxiao*math.sin((n+1)*jiaodu*math.pi/180);

//定义终点的坐标

createEmptyMovieClip(
"xian", n);

// 创建一个空影片xian,n为层次

with (xian) {

lineStyle(
20xff0000100);

// 定义线的大小、颜色、透明度

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(
0xff0000100);

colors 
= [0xFF00000xffffff];

alphas 
= [100100];

ratios 
= [00xFF];

matrix 
= {a:50, b:0, c:0, d:0,

e:
50, f:0, g:50, h:50, i:1};

myMc.beginGradientFill(
"linear",

colors, alphas, ratios, matrix);

// 定义画线的样式:

myMc.lineStyle(
10xff0000100);

// 移动初始点:

myMc.moveTo(
1000);

// 连接曲线:

myMc.curveTo(
6555050);

myMc.curveTo(
35950100);

// 连接直线

myMc.lineTo(
0120);

myMc.curveTo(
451106270);

myMc.lineTo(
9070);

myMc.lineTo(
9050);

myMc.lineTo(
7050);

myMc.curveTo(
802010020);

myMc.lineTo(
1000);

// 结束填充:

myMc.endFill();

// 清除所画:

// myMc.clear();



画正弦线

代码:

root.onLoad

= function() {

daxiao 
= 100;

yuanxin_x 
= 00;

yuanxin_y 
= 150;

};

_root.onEnterFrame 
= function() {

= daxiao*Math.sin(n*Math.PI/180);

= daxiao*Math.sin((n+1)*Math.PI/180);

createEmptyMovieClip(
"xian", n);

with (xian) {

lineStyle(
10x33990050);

moveTo(n
+yuanxin_x, a+yuanxin_y);

lineTo(n
+1+yuanxin_x, c+yuanxin_y);

}

if (n<=400) {

= n+1/2;

}

}



画余弦线

代码:

_root.onLoad 
= function() {

daxiao 
= 100;

yuanxin_x 
= 00;

yuanxin_y 
= 150;

};

_root.onEnterFrame 
= function() {

= daxiao*Math.cos(n*Math.PI/180);

= daxiao*Math.cos((n+1)*Math.PI/180);

createEmptyMovieClip(
"yuan", n);

with (yuan) {

lineStyle(
10x00000050);

moveTo(n
+yuanxin_x, a+yuanxin_y);

lineTo(n
+1+yuanxin_x, c+yuanxin_y);

}

if (n<=400) {

= n+1/2;

}

};



画心脏线

代码:

这是一个用MX新增功能画线的例子,比在5中用点复制法画线简单多了,用此方法,可动态画数学中所有的图形。

_root.onLoad 
= function() {

daxiao 
= 40;

// 设定心脏线的大小

};

_root.onEnterFrame 
= function() {

= daxiao*(2*Math.cos(n*Math.PI/180)

+Math.cos(2*(n*Math.PI/180)));

// 通过心脏线的方程定义起点的x坐标

= daxiao*(2*Math.sin(n*Math.PI/180)

+Math.sin(2*(n*Math.PI/180)));

// 通过心脏线的方程定义起点的y坐标

= daxiao*(2*Math.cos((n+1)*Math.PI/180)

+Math.cos(2*((1+n)*Math.PI/180)));

= daxiao*(2*Math.sin((n+1)*Math.PI/180)

+Math.sin(2*((1+n)*Math.PI/180)));

// 同理定义终点的经x,y坐标

createEmptyMovieClip(
"yuan", n);

// 创建一个空影片yuan

with (yuan) {

lineStyle(
0.50x000000100);

// 定义线的大小、颜色、透明度

moveTo(a
+200, b+150);

lineTo(c
+200, d+150);

// 从起点到终点画一条线,并把图形的中心点定为(200,150)

}

if (n<=360) {

= n+1;

}

};





画螺旋线

代码:

_root.onEnterFrame 
= function() {

= (10+0.1*n)*Math.cos(n*Math.PI/180);

= (10+0.1*n)*Math.sin(n*Math.PI/180);

= (10+0.1*n)*Math.cos((n+1)*Math.PI/180);

= (10+0.1*n)*Math.sin((n+1)*Math.PI/180);

createEmptyMovieClip(
"yuan", n);

with (yuan) {

lineStyle(
20x00000050);

moveTo(a
+200, b+150);

lineTo(c
+200, d+150);

}

if (n<=900) {

= n+1;

}

};





旋转的长方体

代码:

= 50*Math.cos(n*Math.PI/180);

= 100*Math.sin(n*Math.PI/180);

c1 
= 300;

c2 
= 200;

_root.createEmptyMovieClip(
"triangle"1);

with (_root.triangle) {

lineStyle(
10x00000050);

moveTo(a
+c1, b+c2);

lineTo(
50*math.cos((n+90)*math.pi/180)+

c1,
100*math.sin((n+90)*math.pi/180)+c2);

lineTo(
50*math.cos((n+180)*math.pi/180)+

c1,
100*math.sin((n+180)*math.pi/180)+c2);

lineTo(
50*math.cos((n+270)*math.pi/180)+

c1,
100*math.sin((n+270)*math.pi/180)+c2);

lineTo(
50*math.cos((n+360)*math.pi/180)+

c1,
100*math.sin((n+360)*math.pi/180)+200);

lineStyle(
10x00000050);

moveTo(a
+200, b+100);

lineTo(
50*math.cos((n+90)*math.pi/180)+

200,100*math.sin((n+90)*math.pi/180)+100);

lineTo(
50*math.cos((n+180)*math.pi/180)+

200,100*math.sin((n+180)*math.pi/180)+100);

lineTo(
50*math.cos((n+270)*math.pi/180)+

200,100*math.sin((n+270)*math.pi/180)+100);

lineTo(
50*math.cos((n+360)*math.pi/180)+

200,100*math.sin((n+360)*math.pi/180)+100);

lineStyle(
10x00000030);

moveTo(a
+200, b+100);

lineTo(a
+c1, b+c2);

moveTo(
50*math.cos((n+90)*math.pi/180)

+c1,100*math.sin((n+90)*math.pi/180)+c2);

lineTo(
50*math.cos((n+90)*math.pi/180)

+200,100*math.sin((n+90)*math.pi/180)+100);

moveTo(
50*math.cos((n+180)*math.pi/180)

+c1,100*math.sin((n+180)*math.pi/180)+c2);

lineTo(
50*math.cos((n+180)*math.pi/180)

+200,100*math.sin((n+180)*math.pi/180)+100);

moveTo(
50*math.cos((n+270)*math.pi/180)

+c1,100*math.sin((n+270)*math.pi/180)+c2);

lineTo(
50*math.cos((n+270)*math.pi/180)

+200,100*math.sin((n+270)*math.pi/180)+100);

}



用as做烛光,相当逼真。

代码:

offsetX 
= 275;

offsetY 
= 100;

left 
= 0;

right 
= 0;

top 
= 0;

leftGoal 
= 0;

rightGoal 
= 0;

topGoal 
= 0;

rate 
= .2;

decay 
= .9;

for (var i = 0; i<shapes.length; i++) {

var name = "flame"+i;

createEmptyMovieClip(name, i);

_root[name]._x 
= offsetX;

_root[name]._y 
= offsetY;

_root[name].offset 
= parseInt(shapes[i].split("|")[0]);

_root[name].fade 
= parseInt(shapes[i].split("|")[1]);

}

createEmptyMovieClip(
"heat", i);

heat._x 
= offsetX;

heat._y 
= offsetY;

checkEdge 
= function (cur, side, dist) {

change 
= 0;if (cur>side) {

change 
-= Math.random()*dist;

else if (cur<-side) {

change 
+= Math.random()*dist;

}

return change;

};

onEnterFrame 
= function () {

leftGoal 
+= Math.random()*6-3;

leftGoal 
+= checkEdge(leftGoal,103);

rightGoal 
+= Math.random()*6-3;

rightGoal 
+= checkEdge(rightGoal, 10,3);

topGoal 
+= Math.random()*8-4;

topGoal 
+= checkEdge(topGoal, 154);

leftAccel 
= (leftGoal-left)*rate;

leftVeloc 
+= leftAccel;

leftVeloc 
*= decay;

left 
+= leftVeloc;

rightAccel 
= (rightGoal-right)*rate;

rightVeloc 
+= rightAccel;

rightVeloc 
*= decay;right += rightVeloc;

topAccel 
= (topGoal-top)*rate;

topVeloc 
+= topAccel;

topVeloc 
*= decay;top += topVeloc;

for (var i = 0; i<shapes.length; i++) {

with (_root["flame"+i]) {

clear();colors 
= [0xFCE39C0xF4AC35];

alphas 
= [_root["flame"+i].fade,

_root[
"flame"+i].fade-20];

ratios 
= [70255];

matrix 
= {matrixType:"box", x:-50,

y:
50, w:100, h:200, r:0};

beginGradientFill(
"radial",colors,

alphas, ratios, matrix);

lineStyle(
10x0000000);

moveTo(
0-left+right,0-top-_root

[
"flame"+i].offset*2);

curveTo(
40+_root["flame"+i].

offset
+right, 180,0200);

curveTo(
-40-_root["flame"+i].

offset
-left, 1800-left+right,

0-top-_root["flame"+i].offset*2);

endFill();

}

with (_root.heat) {

clear();colors 
= [0x9869320x986932];

alphas 
= [700];

ratios 
= [20255];

matrix 
= {matrixType:"box",

x:
-20-left/2, y:120-top, w:40+right/2,h:120+top, r:0

};

beginGradientFill(
"radial",

colors, alphas, ratios, matrix);

lineStyle(
1,0x0000000);

moveTo(
-500);

lineTo(
500);

lineTo(
50200);

lineTo(
-50200);

lineTo(
-50,0);

endFill();

}

duplicateMovieClip(

_root[
"flame"+(shapes.length-1)],

"shapeMask",shapes.length+1);

heat.setMask(shapeMask);

};



十四面体代码:

_root.onLoad 
= function() {

c1 
= 200;

c2 
= 250;

c3 
= 50;

c4 
= 10;

};

_root.onEnterFrame 
= function() {

aa 
= 100;

bb 
= 100;

// 控制横向

cc 
= _root.right_s3.getvalue();

dd 
= _root.right_s4.getvalue();

ee 
= _root.right_s5.getvalue();

ff 
= _root.right_s6.getvalue();

gg 
= _root.right_s7.getvalue();

daxiao1 
= aa;

daxiao2 
= bb;

sutu 
= cc;

zhox 
= ee;

bianshu1 
= dd;

// 控制速度和方向

_root.createEmptyMovieClip(
"triangle"1);

lineStyle(
00x000000100);

with (_root.triangle) {

// 画虚线

a1 
= daxiao2*math.sin((n+1*60)*math.pi/180);

b1 
= daxiao1*math.cos((n+1*60)*math.pi/180);

a2 
= daxiao2*math.sin((n+(i+1)*60)*math.pi/180);

b2 
= daxiao1*math.cos((n+(i+1)*60)*math.pi/180);

lineStyle(
10xff0000,100);

// 中面的6个点

moveTo(daxiao2
*math.sin((n+1*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+1*60)*math.pi/180)+c2-gg-c3);

lineTo(daxiao2
*math.sin((n+6*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+6*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+3*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+3*60)*math.pi/180)+c2-gg-c3);

lineTo(daxiao2
*math.sin((n+2*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+2*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+5*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+5*60)*math.pi/180)+c2-gg-c3);

lineTo(daxiao2
*math.sin((n+4*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+4*60)*math.pi/180)+c2-gg-c3);

// 连上下的12个点

moveTo(daxiao2
*math.sin((n+1*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+1*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin((n+2*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+2*60)*math.pi/180)+c2-gg);

moveTo(daxiao2
*math.sin((n+3*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+3*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin((n+4*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+4*60)*math.pi/180)+c2-gg);

moveTo(daxiao2
*math.sin((n+5*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+5*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin((n+6*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+6*60)*math.pi/180)+c2-gg);

// 中面的6个点,但连线不一样,注意

moveTo(daxiao2
*math.sin

((n
+1*60)*math.pi/180)+c1,daxiao1

*math.cos((n+1*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin

((n
+1*60)*math.pi/180)+c1,daxiao1

*math.cos((n+1*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+2*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+2*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin((n+2*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+2*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+3*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+3*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin((n+3*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+3*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+4*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+4*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin((n+4*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+4*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+5*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+5*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin((n+5*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+5*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+6*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+6*60)*math.pi/180)+c2-gg);

lineTo(daxiao2
*math.sin((n+6*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+6*60)*math.pi/180)+c2-gg-c3);

//取下面的顶点,及3个点并连线

lineStyle(
10x33660060);

moveTo(c1, c2
-gg-c3-c3+150+c3);

lineTo((daxiao2
-c4)*math.sin

((n
+5*30)*math.pi/180)+c1,daxiao1

*math.cos((n+5*30)*math.pi/180)+c2-

gg
-c3-c3+150);

moveTo(c1, c2
-gg-c3-c3+150+c3);

lineTo((daxiao2
-c4)*math.sin

((n
+9*30)*math.pi/180)+c1,daxiao1

*math.cos((n+9*30)*math.pi/180)+c2-gg-c3-c3+150);

moveTo(c1, c2
-gg-c3-c3+150+c3);

lineTo((daxiao2
-c4)*math.sin

((n
+1*30)*math.pi/180)+c1,daxiao1

*math.cos((n+1*30)*math.pi/180)+c2

-gg-c3-c3+150);

// 下面3、6个点连接

moveTo((daxiao2
-c4)*math.sin

((n
+5*30)*math.pi/180)+c1,daxiao1

*math.cos((n+5*30)*math.pi/180)+c2-gg-c3-c3+150);

lineTo(daxiao2
*math.sin((n+2*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+2*60)*math.pi/180)+c2-gg);

moveTo((daxiao2
-c4)*math.sin((n+5*30)

*math.pi/180)+c1,daxiao1

*math.cos((n+5*30)*math.pi/180)+c2-gg-c3-c3+150);

lineTo(daxiao2
*math.sin((n+3*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+3*60)*math.pi/180)+c2-gg);

moveTo((daxiao2
-c4)*math.sin((n+9*30)

*math.pi/180)+c1,daxiao1

*math.cos((n+9*30)*math.pi/180)+c2-gg-c3-c3+150);

lineTo(daxiao2
*math.sin((n+4*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+4*60)*math.pi/180)+c2-gg);

moveTo((daxiao2
-c4)*math.sin

((n
+9*30)*math.pi/180)+c1,daxiao1

*math.cos((n+9*30)*math.pi/180)+c2-gg-c3-c3+150);

lineTo(daxiao2
*math.sin((n+5*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+5*60)*math.pi/180)+c2-gg);

moveTo((daxiao2
-c4)

*math.sin((n+1*30)*math.pi/180)+c1,daxiao1

*math.cos((n+1*30)*math.pi/180)+c2-gg-c3-c3+150);

lineTo(daxiao2
*math.sin((n+1*60)

*math.pi/180)+c1,daxiao1*math.cos

((n
+1*60)*math.pi/180)+c2-gg);

moveTo((daxiao2
-c4)

*math.sin((n+1*30)*math.pi/180)+c1,daxiao1

*math.cos((n+1*30)*math.pi/180)+c2-gg-c3-c3+150);

lineTo(daxiao2
*math.sin

((n
+6*60)*math.pi/180)+c1,daxiao1*math.cos

((n
+6*60)*math.pi/180)+c2-gg);

// 取上面的顶点,并连线

moveTo(c1, c2
-gg-c3-c3-c3);

lineTo((daxiao2
-c4)*math.sin

((n
+210)*math.pi/180)+c1,(daxiao1)

*math.cos((n+210)*math.pi/180)+c2-gg-c3-c3);

moveTo(c1, c2
-gg-c3-c3-c3);

lineTo((daxiao2
-c4)*math.sin

((n
+330)*math.pi/180)+c1,(daxiao1)

*math.cos((n+330)*math.pi/180)+c2-gg-c3-c3);

moveTo(c1, c2
-gg-c3-c3-c3);

lineTo((daxiao2
-c4)*math.sin((n+1*90)

*math.pi/180)+c1,(daxiao1)

*math.cos((n+1*90)*math.pi/180)+c2-gg-c3-c3);

// 中上面的6个点,但连线不一样,注意

moveTo(daxiao2
*math.sin((n+1*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+1*60)*math.pi/180)+c2-gg-c3);

lineTo(daxiao2
*math.sin((n+6*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+6*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+3*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+3*60)*math.pi/180)+c2-gg-c3);

lineTo(daxiao2
*math.sin((n+2*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+2*60)*math.pi/180)+c2-gg-c3);

moveTo(daxiao2
*math.sin((n+5*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+5*60)*math.pi/180)+c2-gg-c3);

lineTo(daxiao2
*math.sin((n+4*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+4*60)*math.pi/180)+c2-gg-c3);

// 上面3、6个点连接

moveTo((daxiao2
-c4)*math.sin

((n
+90)*math.pi/180)+c1,(daxiao1)

*math.cos((n+90)*math.pi/180)+c2-gg-c3-c3);

lineTo(daxiao2
*math.sin((n+1*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+1*60)*math.pi/180)+c2-gg-c3);

moveTo((daxiao2
-c4)*math.sin((n+90)

*math.pi/180)+c1,(daxiao1)

*math.cos((n+90)*math.pi/180)+c2-gg-c3-c3);

lineTo(daxiao2
*math.sin((n+2*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+2*60)*math.pi/180)+c2-gg-c3);

moveTo((daxiao2
-c4)*math.sin

((n
+210)*math.pi/180)+c1,(daxiao1)

*math.cos((n+210)*math.pi/180)+c2-gg-c3-c3);

lineTo(daxiao2
*math.sin((n+3*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+3*60)*math.pi/180)+c2-gg-c3);

moveTo((daxiao2
-c4)*math.sin

((n
+210)*math.pi/180)+c1,(daxiao1)

*math.cos((n+210)*math.pi/180)+c2-gg-c3-c3);

lineTo(daxiao2
*math.sin((n+4*60)

*math.pi/180)+c1,daxiao1

*math.cos((n+4*60)*math.pi/180)+c2-gg-c3);

moveTo((daxiao2
-c4)*math.sin

((n
+330)*math.pi/180)+c1,(daxiao1)

*math.cos((n+330)*math.pi/180)+c2-gg-c3-c3);

lineTo(daxiao2
*math.sin

((n
+5*60)*math.pi/180)+c1,daxiao1

*math.cos((n+5*60)*math.pi/180)

+c2-gg-c3);

moveTo((daxiao2
-c4)

*math.sin((n+330)*math.pi/180)+c1,(daxiao1)

*math.cos((n+330)*math.pi/180)+c2-gg-c3-c3);

lineTo(daxiao2
*math.sin

((n
+6*60)*math.pi/180)+c1,daxiao1

*math.cos((n+6*60)*math.pi/180)+c2-gg-c3);

}

= n+sutu;

}
posted @ 2007-11-23 20:05  Otis.blogs  阅读(557)  评论(0编辑  收藏  举报