2006/07/03 | 漂亮的AS线条动画
类别(Flash课件设计) | 评论(1) | 阅读(440) | 发表于 11:58

Flash 动画


从网友处得到了一段画线的代码,改动了一下,上了个色,并且优化了一下代码,代码如下,可以放在一个MC元件中,然后往主场景中拖几个即可,直接写在主场景帧中也可,但只有一条线。
this._x = this._y = 0;
//MC元件的初始位置,如果代码写在主场景中,该行可以省略。
var total = 5;
//线条的总个数
var myColor = random(0xffffff);
//随机生产一个初始颜色。
speed = 5;
//运动速度,舞台越大,该值可以适当增大一些。
for (i = 0; i < total; i++) {
  //duplicateMovieClip("ball" + i, i);//该行代码无法达到预想的效果。
  createEmptyMovieClip("ball" + i, i);
  var mc = this["ball" + i];
  mc._x = random(Stage.width);
  mc._y = random(Stage.height);
  mc.dx = random(5) + 5;
  mc.dy = random(5) + 5;
}
onEnterFrame = function () {
  r = Math.floor(random(10));
  //g = Math.floor(random(10)); //测试发现这一行用不着
  b = Math.floor(random(20));
  for (var i = 0; i < total; i++) {
    var mc = this["ball" + i];
    mc._x += mc.dx;
    mc._y += mc.dy;
    if (mc._x < 0 && mc.dx < 0 || mc._x > Stage.width && mc.dx > 0) {
      mc.dx = -mc.dx;
      mc._x = (mc._x<0)?0:Stage.width;
      myColor += r << 16 + b;
      myColor = myColor & 0xffffff;
    }
    if (mc._y < 0 && mc.dy < 0 || mc._y > Stage.height && mc.dy > 0) {
      mc.dy = -mc.dy;
      mc._y = (mc._y<0)?0:Stage.height;
      myColor += r << 16 + b;
      myColor = myColor & 0xffffff;
    }
  }
  createEmptyMovieClip("xian", 100);
  with (xian) {
    lineStyle(2, myColor, 100);
    moveTo(ball0._x, ball0._y);
    for (var i = 1; i < total; i++) {
      var mc = this["ball" + i];
      lineTo(mc._x, mc._y);
    }
    lineTo(ball0._x, ball0._y);
  }
};
0

评论Comments