用FlashAS实现画图的周详讲解(2)

2008-04-02 11:06:20来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



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

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

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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Flash使用技巧-用Flash制作转动的地球仪

下一篇: 新浪/闪客帝国图片效果解析