您当前位置:首页 >> 设计学院 >> Flash
用Flash AS实现画图的详细讲解
时间:2007-06-26 13:05:20  来源:网页教学网    作者:


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

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

用鼠标任意画线

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

代码:

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" 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.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" 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++) {    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" 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(0, 0x000000, 100);   dashTo({x:300, y:0}, {x:0, y:400}, 3, 10); }

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, 0x000000, 100); // 线的颜色是黑色(0x000000) eval(targetMC).moveTo(fromX, fromY); x = fromX; y = fromY; while (x<toX) { 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<ml) {   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); }

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

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,0xFFFFFF, 0);       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;   } }; g = new Shape(); 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);

  系列讲座二,用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", 151, 50, 280, 400, 30);   // 建 一文本,名、层次、x、y、宽度、高度   _root.txtLoad.text = "这是一个画线的应用。zjs35制作。zjs35@163.com";   // 文本中的内容   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, f:0, g:50, h:50, i:1}; myMc.beginGradientFill("linear", colors, alphas, ratios, matrix); // 定义画线的样式: myMc.lineStyle(1, 0xff0000, 100); // 移动初始点: myMc.moveTo(100, 0); // 连接曲线: myMc.curveTo(65, 5, 50, 50); myMc.curveTo(35, 95, 0, 100); // 连接直线 myMc.lineTo(0, 120); myMc.curveTo(45, 110, 62, 70); myMc.lineTo(90, 70); myMc.lineTo(90, 50); myMc.lineTo(70, 50); myMc.curveTo(80, 20, 100, 20); myMc.lineTo(100, 0); // 结束填充: myMc.endFill(); // 清除所画: // myMc.clear();

   画正弦线

  代码:

root.onLoad = function() {   daxiao = 100;   yuanxin_x = 00;   yuanxin_y = 150; }; _root.onEnterFrame = function() {   a = daxiao*Math.sin(n*Math.PI/180);   c = daxiao*Math.sin((n+1)*Math.PI/180);   createEmptyMovieClip("xian", n);   with (xian) {     lineStyle(1, 0x339900, 50);     moveTo(n+yuanxin_x, a+yuanxin_y);     lineTo(n+1+yuanxin_x, c+yuanxin_y);   }    if (n<=400) {        n = n+1/2;   } }

   画余弦线

  代码:

_root.onLoad = function() {   daxiao = 100;  yuanxin_x = 00;   yuanxin_y = 150; }; _root.onEnterFrame = function() {   a = daxiao*Math.cos(n*Math.PI/180);   c = daxiao*Math.cos((n+1)*Math.PI/180);   createEmptyMovieClip("yuan", n);   with (yuan) {     lineStyle(1, 0x000000, 50);     moveTo(n+yuanxin_x, a+yuanxin_y);     lineTo(n+1+yuanxin_x, c+yuanxin_y);     }     if (n<=400) {       n = n+1/2;   } };

   画心脏线

  代码:

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

_root.onLoad = function() {   daxiao = 40;   // 设定心脏线的大小 }; _root.onEnterFrame = function() {   a = daxiao*(2*Math.cos(n*Math.PI/180)+Math.cos(2*(n*Math.PI/180)));   // 通过心脏线的方程定义起点的x坐标   b = daxiao*(2*Math.sin(n*Math.PI/180)+Math.sin(2*(n*Math.PI/180)));   // 通过心脏线的方程定义起点的y坐标   c = daxiao*(2*Math.cos((n+1)*Math.PI/180)+Math.cos(2*((1+n)*Math.PI/180)));   d = 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.5, 0x000000, 100);     // 定义线的大小、颜色、透明度     moveTo(a+200, b+150);     lineTo(c+200, d+150);     // 从起点到终点画一条线,并把图形的中心点定为(200,150)     }     if (n<=360) {       n = n+1;   } }; 

   画螺旋线

  代码:

_root.onEnterFrame = function() {   a = (10+0.1*n)*Math.cos(n*Math.PI/180);   b = (10+0.1*n)*Math.sin(n*Math.PI/180);   c = (10+0.1*n)*Math.cos((n+1)*Math.PI/180);   d = (10+0.1*n)*Math.sin((n+1)*Math.PI/180);   createEmptyMovieClip("yuan", n);   with (yuan) {     lineStyle(2, 0x000000, 50);     moveTo(a+200, b+150);     lineTo(c+200, d+150);     }     if (n<=900) {       n = n+1;   } }; 

   旋转的长方体

  代码:

a = 50*Math.cos(n*Math.PI/180); b = 100*Math.sin(n*Math.PI/180); c1 = 300; c2 = 200; _root.createEmptyMovieClip("triangle", 1); with (_root.triangle) {   lineStyle(1, 0x000000, 50);   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(1, 0x000000, 50);   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(1, 0x000000, 30);   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,10, 3);  rightGoal += Math.random()*6-3;  rightGoal += checkEdge(rightGoal, 10,3);  topGoal += Math.random()*8-4;  topGoal += checkEdge(topGoal, 15, 4);  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 = [0xFCE39C, 0xF4AC35];      alphas = [_root["flame"+i].fade, _root["flame"+i].fade-20];      ratios = [70, 255];      matrix = {matrixType:"box", x:-50, y:50, w:100, h:200, r:0};      beginGradientFill("radial",colors, alphas, ratios, matrix);      lineStyle(1, 0x000000, 0);      moveTo(0-left+right,0-top-_root["flame"+i].offset*2);      curveTo(40+_root["flame"+i].offset+right, 180,0, 200);      curveTo(-40-_root["flame"+i].offset-left, 180, 0-left+right, 0-top-_root["flame"+i].offset*2);      endFill();    }  } with (_root.heat) {    clear();colors = [0x986932, 0x986932];    alphas = [70, 0];    ratios = [20, 255];    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,0x000000, 0);  moveTo(-50, 0);  lineTo(50, 0); lineTo(50, 200);  lineTo(-50, 200);  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(0, 0x000000, 100);  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(1, 0xff0000,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(1, 0x336600, 60);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 = n+sutu;}
http://www.visionshow.com/tutorial/Flash/20070626/7713.html

上一篇:ActionScript的基本语法规则 下一篇:Actionscript中的数组
推荐资讯
相关文章
无相关信息
栏目更新
栏目热门

网站留言关于我们广告业务信息反馈合作伙伴网站地图
Copyright © 2006 All rights reserved.
粤ICP备05143237号