网页教学网
 当前位置: 网页教学网 >> 动画制作 >> Flash实例教学 >> 阅读:Flash轻松实现五彩变换多边形鼠标轨迹特效
[ HTML ] [ FW ] [ DW ] [ FP ] [ JS ] [ XML ] [ CSS ] [ 图象 ] [ FLASH ] [ .NET ] [ ASP ] [ JSP ] [ PHP ] [ 数据 ] [ 系统 ] [ 安全 ] [ 素材 ] [ 建站 ] [ 主机 ] [ 入门 ] [ 技巧 ]

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

http://www.webjx.com  更新日期:2007-06-28 22:39  出处:网页教学网  作者:闪电儿 收藏本文

  本教程完全是利用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 > timeMin) {
    initPoly.apply(drawPoly(randRange(3, 12), randRange(0, 0xFFFFFF), 100));
    time = getTimer();
  }
};

  最后按Ctrl+Enter测试!看效果如何?是不是很神奇啊!赶快学习Flash的Actionscript吧!很厉害哦!

关键词:
推荐给好友】【关闭
最新五条评论
查看全部评论
评论总数 0
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为