日期:2013-9-14 浏览次数:20176次

  本教程完全是利用Flash 的Action Script指令来实现了!利用Flash画图大家已经知道了!这个教程就当给大家复习一下Flash Actionscript的绘图功能吧!

  这个教程制作的鼠标跟随效果很特殊,是一些带颜色的不段变换形状的一些图形。

  先看效果。(用鼠标在动画中移动就可以看到效果)

点击这里下载源文件

  制作方法。

  首先新建立文档,然后按Ctrl+J修改属性。

Flash轻松实现五彩变换多边形鼠标轨迹特效

然后在第一帧中放入下面代码。

/* 定义5个全局变量 */
var time:Number = 0;
var timeMin:Number = 100;
var alphaDrop:Number = 2;
var growBy:Number = 2;
var rotateByMax:Number = 10;

/* 转变弧度的函数 */
function deg2rad(degrees:Number):Number {
  return degrees * Math.PI / 180;
}
 
/* 返回最大值和最小值之间的一个数 */
function randRange(min:Number, max:Number):Number {
  var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
  return randomNum;
}

/* 绘制规则多边形,设置颜色、大小、半径 */
function drawPoly(sides:Number, color:Number, radius:Number):MovieClip {
  var depth:Number = _root.getNextHighestDepth();
  var poly_mc:MovieClip = _root.createEmptyMovieClip("poly" + depth, depth);
  var unitAngle = deg2rad(360 / sides); 
 
  poly_mc.beginFill(color);
  poly_mc.moveTo(radius, 0);
  for (var i:Number = 1; i < sides; i++) {
    var turn:Number = unitAngle * i;
    var dx:Number = Math.cos(turn) * radius;
    var dy:Number = Math.sin(turn) * radius;
    poly_mc.lineTo(dx, dy);
  }
  poly_mc.endFill();
 
  return poly_mc;
}

/* 初始化一个影片剪辑 */
function initPoly():Void {
  this._x = _xmouse;
  this._y = _ymouse;
  this._xscale = this._yscale = 0;
  this.rotateBy = randRange(-rotateByMax, rotateByMax);
 
  this.onEnterFrame = function():Void {
    this._xscale = this._yscale += growBy;
    this._alpha -= alphaDrop;
    this._rotation += this.rotateBy;
 
    if (this._alpha < 0) {
      this.removeMovieClip();
    }
  };
}

/* 主程序 */
onMouseMove = function():Void {
  if (getTimer() - time > timeM