当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash教程:纯AS编写蝌蚪摆尾动画效果

Flash动画制作
Flash5任意两点间随机画线(二)
Flash5的DATE对象(一)
Flash5任意两点间随机画线(四)
Flash 神奇遮罩之图片篇(2)
Flash 神奇遮罩之应用篇(3)
Flash MX的自由变形工具(4)
利用Flash MX模板制作XML动态菜单(3)
Freehand和Flash的结合应用(9)
Flash5 位移操作(一)
Flash5任意两点间随机画线(五)
Flash 神奇遮罩之应用篇(2)
Flash 神奇遮罩教程之以假乱真篇
Flash 神奇遮罩之透明度篇(3)
实例学用Flash MX增强的AS功能(3)
利用Flash MX模板制作XML动态菜单(5)
Flash5任意两点间随机画线(一)
Flash层的运用(二)
Flash 神奇遮罩之应用篇(4)
Flash 神奇遮罩之综合篇(2)
Flash 神奇遮罩之综合篇(1)

Flash动画制作 中的 Flash教程:纯AS编写蝌蚪摆尾动画效果


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 103 ::
收藏到网摘: n/a

先看最终效果:

场景里代码

Object.environment = this;
Math.prototype.degrees = function (r)
{
return (r * 180 / 3.141593E+000);
};
maxtents = 3;
this.onEnterFrame = function ()
{
if (!random(30) && tents < maxtents)
{
var nombre = "tent" + String(depth++);
var neo = this.attachMovie("tentacle", nombre, depth);
neo._x = random(600);
neo._y = 370;
neo.theta = 270;
++tents;
} // end if
};
stop ()

MC里的代码

#initclip 1
function TentacleClass()
{
this.numNodes = 27;
this.head = 2 + random(4);
this.girth = 8 + random(12);
this.speedCoefficient = 9.000000E-002 + random(10) / 50;
this.friction = 9.000000E-001 + random(10) / 100;
this.muscleRange = 20 + random(50);
this.muscleFreq = 1.000000E-001 + random(100) / 250;
this.generateNodes();
this.onEnterFrame = this.move;
} // End of the function
TentacleClass.prototype = new MovieClip();
TentacleClass.prototype.generateNodes = function ()
{
this.node = new Array();
var n = 0;
while (n < this.numNodes)
{
var point = {x: 0, y: 0};
this.node.push(point);
++n;
} // end while
};
TentacleClass.prototype.move = function ()
{
this.tv = this.tv + 5.000000E-001 * (Math.random() - Math.random());
this.theta = this.theta + this.tv;
this.tv = this.tv * this.friction;
this.node[0].x = this.head * Math.cos(1.745329E-002 * this.theta);
this.node[0].y = this.head * Math.sin(1.745329E-002 * this.theta);
this.count = this.count + this.muscleFreq;
this.thetaMuscle = this.muscleRange * Math.sin(this.count);
this.node[1].x = -this.head * Math.cos(1.745329E-002 * (this.theta + this.thetaMuscle));
this.node[1].y = -this.head * Math.sin(1.745329E-002 * (this.theta + this.thetaMuscle));
var i = 2;
while (i < this.numNodes)
{
var dx = this.node.x - this.node[i - 2].x;
var dy = this.node.y - this.node[i - 2].y;
var d = Math.sqrt(dx * dx + dy * dy);
this.node.x = this.node[i - 1].x + dx * this.girth / d;
this.node.y = this.node[i - 1].y + dy * this.girth / d;
if (i == 2)
{
this._x = this._x - dx * this.speedCoefficient;
this._y = this._y - dy * this.speedCoefficient;
if (this._x + this._width < 0 || this._x - this._width > 600 || this._y + this._height < 0 || this._y - this._height > 400)
{
--Object.environment.tents;
this.removeMovieClip();
} // end if
} // end if
++i;
} // end while
this.clear();
this.moveTo(this.node[1].x, this.node[1].y);
var i = 2;
while (i < this.numNodes)
{
this.lineStyle(int(this.numNodes - i) * (this.numNodes - i) / 20, 16777215, 100);
this.lineTo(this.node.x, this.node.y);
++i;
} // end while
};
Object.registerClass("tentacle", TentacleClass);
#endinitclip