现在的位置: 首页 >> 多媒体 >> Flash >> 用Flash AS实现画图的详细讲解
添加时间:2005-9-17 来源:网页教学网 作者:
用Flash AS实现画图的详细讲解

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

从一点到另一点画虚线

代码:



[1] [2] [3] [4] [5] [6]  下一页


上一篇:《物理学的弹性》分析 下一篇:AS代码2.0:针对Flash Player 7
大部分文章摘自网上,如有侵犯您的权益请与我们联系,我们会第一时间进行处理,谢谢! [ 打印文章 ] [ 关闭窗口 ]
推荐文章
·FlashMX 视频教程(18)-缩放工具
·Flash MX 2004 ActionScript图文
·使用Flash MX的3个小技巧
·自己动手制作手机Flash主题动画
·Flash绘画教程:漫画中光影的简
·钢笔字的简单制作
·实例详解鼠标右键菜单
·Flash视频教程:东风破
·Flash MX 2004视频宝典教程(6)美
相关文章
·用FLASH AS实现鼠标画圆的效果
最新文章
·Flash Player 8 新特性效果演示
·FlashMX 视频教程(50)-影片发布
·FlashMX 视频教程(49)-MTV的制作
·FlashMX 视频教程(48)-小苗的生
·FlashMX 视频教程(47)-影片跳转
·FlashMX 视频教程(46)-控制动画
·FlashMX 视频教程(45)-变形动画
·FlashMX 视频教程(44)-滚动的小
·FlashMX 视频教程(43)-颜色变化
·FlashMX 视频教程(42)-制作按钮
Google