当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash教程:AS制作复制美丽爱心效果

Flash动画制作
Flash5键盘鼠标应用(二)
Freehand和Flash的结合应用(4)
Flash5 有声音的三眼狼(二)
Freehand和Flash的结合应用(7)
Freehand和Flash的结合应用(10)
Freehand和Flash的结合应用(12)
Flash5 位移操作(二)
Flash5制作水波倒影效果(二)
Flash5任意两点间随机画线(三)
Flash 神奇遮罩之原理篇(3)
Flash 神奇遮罩之动态篇
Flash 神奇遮罩之图片篇(1)
Flash MX 视频导入功能详解(5)
利用Flash MX模板制作XML动态菜单(1)
用动作脚本动态创建和控制文本框 (6)
FW MX和Flash MX的亲密合作(2)
FW MX和Flash MX的亲密合作(5)
Flash中音量和左右声道平衡的控制(2)
Flash MX的AS绘图和时间控制 下
Flash5 有声音的三眼狼(四)

Flash动画制作 中的 Flash教程:AS制作复制美丽爱心效果


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

效果演示:(鼠标移到影片剪辑中心位置,看看效果)

1:先在场景绘制一个任意形,图像也可以,f8转换为影片剪辑

2:紧接着,按f8再转换一次影片剪辑"元件2"(也可以ctrl+F8拖进去,这里是个人习惯)

3:双击进入"元件2",给影片剪辑起名称为"aqua0"

4:新建图层2,层2第一帧点右键,给动作.

5:给第二层依次按f7插入三个空白关键帧.他们的action依次是

第一帧:

d = 0;
i = 0;
numAqua = 0;
minAlpha = 70;
threshold = 500;
clp = aqua0;
maxChange = 1.57;
maxChange2 = 1.04666666666667;
halfMax = maxChange/2;
halfMax2 = maxChange2/2;
maxSpeed2 = 2;
trajectory = new Array(15);
trajectory[0] = 0;

第二帧:

i = numAqua;
while (i>=0) {
baseClip = eval("aqua"+i);
dx = baseClip._x-_xmouse;
dy = baseClip._y-_ymouse;
d = Number(Math.sqrt((dx*dx)+(dy*dy)));
if (threshold<d) {
            d = threshold;
}
closeness = (Math.pow(((threshold-d)/threshold)*10, 1.8)*0.016)*100;
if (!closeness) {
            closeness = 0;
}
if (0<closeness) {
            if (97<closeness) {
             if (baseClip._xscale<20) {
              removeMovieClip(baseClip);
             }
             if (numAqua<15) {
              numAqua = numAqua+1;
              duplicateMovieClip("aqua"+i, "aqua"+numAqua, numAqua);
              newClip = eval("aqua"+numAqua);
              trajectory[numAqua] = 0;
              colors[numAqua] = new Color(newClip);
              currentColor[numAqua] = new Object();
              colors[numAqua].setTransform(currentColor[numAqua]);
              newClip._x = newClip._x+(random(5)+5);
              newClip._y = newClip._y+(random(5)+5);
              baseClip._xscale = baseClip._xscale-20;
              baseClip._yscale = baseClip._yscale-20;
              newClip._xscale = baseClip._xscale;
              newClip._yscale = baseClip._yscale;
             }
            }
            currentColor[i].ra = startR-((closeness*0.01)*(startR-endR));
            currentColor[i].ga = startG-((closeness*0.01)*(startG-endG));
            currentColor[i].ba = startB-((closeness*0.01)*(startB-endB));
            colors[i].setTransform(currentColor[i]);
            a = (closeness*(100-minAlpha))*0.01;
            baseClip._alpha = a+minAlpha;
            speed = closeness/8;
            angle = (Math.random()*100)%maxChange;
            trajectory[i] = (trajectory[i]-halfMax)+angle;
} else {
            currentColor[i].ra = startR-((closeness*0.01)*(startR-endR));
            currentColor[i].ga = startG-((closeness*0.01)*(startG-endG));
            currentColor[i].ba = startB-((closeness*0.01)*(startB-endB));
            colors[i].setTransform(currentColor[i]);
            a = (closeness*(100-minAlpha))*0.01;
            baseClip._alpha = a+minAlpha;
            speed = maxSpeed2;
            angle = (Math.random()*100)%maxChange2;
            trajectory[i] = (trajectory[i]-halfMax2)+angle;
}
vx = speed*Math.cos(trajectory[i]);
vy = speed*Math.sin(trajectory[i]);
baseClip._x = baseClip._x+vx;
baseClip._y = baseClip._y+vy;
i = i-1;
}

第三帧:

gotoAndPlay(2); 

6:基本上大功告成,最后,回到场景,新建一个层,加个背景图就ok了,别忘了把背景图放到最下层哦.你也可以多复制一些调整大小,这个大家自己发挥了