Flash效果制作-璀灿星光
静静的夜空,繁星点点,天空中不断滑过耀眼的光芒,给人一种很强的视觉冲击力,这样的夜空也许只能出现在无限的幻想中,不过没关系,这次我们用强大的Flash模拟一个这样绚丽的夜空效果,可以在制作过程中充分发挥自己的想象力。
最终的效果如图1所示:
图1
下面就请跟我一起制作此实例。
1.夜晚的天空没有星星是不行的,所以首先制作夜空中的星星,新建一个Movie clip 剪辑元件,命名为star,进入元件的编辑区后,按下shift键的时候使用椭圆工具绘制一个很小的正圆,并填充上适当的颜色,填充色暂时可以任意设置,在后面还要对每个星星设置不同的颜色,如图2所示为工作区放大为800%后的效果:
图2
然后在建立一个movie clip元件,命名为100stars,在这个元件中制作满天星星的效果。进入元件的编辑状态后,分别5此拖动元件star到编辑区中,并设置为不同的颜色,然后给5颗星星在属性面板中分别设置Instance name为s1,s2,s3,s4和s5,如图3所示:
图3
在图层1的第1祯添加如下Action动作脚本,以便对星星进行复制,形成满天星星的效果:
c = 1;
//初始化变量c的值为1
while (Number(c)<100) {
c = Number(c)+1;
//c的值经过每次循环后增1
name = "ss" add c;
//设置变量name的值为字符串aa和变量c的组合
sn = "s" add (1+Random (4));
//设置变量sn的值为字符s和1到5之间的随机数的组合
if (Number(random(4))<2) {
sn = "s" add 4;
}
//如果取得的随机数小于2,变量sn的值为s4
duplicateMovieClip(sn, name, c);
setProperty(name, _x, 150-random(300));
setProperty(name, _y, 150-random(300));
sc = 50*(1+Number(random(3)));
setProperty(name, _alpha, 7500/sc);
setProperty(name, _xscale, sc);
setProperty(name, _yscale, sc);
//对对象sn进行一系列的复制,并设置其各种属性
}
//当变量c的值小于100时候执行上面的循环,也就是执行100此上面的程序
stop();
2.在此例中,天空中会有一个光球不断发出耀眼的光芒,下面就来制作这个发光的光球。新建一Movie clip影片剪辑元件,命名为starblink,进入元件的编辑状态后,在第2祯插入一个关键祯,然后使用椭圆工具绘制一个正圆,按照图4所示的设置对其进行填充,如图5所示:
图4
图5
然后分别在第4和第6祯插入关键祯,使用缩放工具调整第4关键祯中的圆球,将其适当放大,调整第6关键祯中的圆球,将其缩小为一个小圆点,然后分别选中第2祯和第4祯,从属性面板的Tween下拉列表中选取Shape形状渐变效果,建立两个形状渐变,如图6所示:
图6
最后在第10祯插入关键祯,添加如下Action动作脚本:
gotoAndPlay(1);
3.光球在发射光芒的时候将在其四周产生一圈冲击波,这样的效果就更逼真了。新建一个Movie clip影片剪辑元件,命名为sky1,来制作单个的冲击波,进入元件编辑状态后,使用绘图工具绘制如图7所示的图形,作为冲击波单元:
图7
绘制好后,将此图形转化为Movie clip影片剪辑,命名为sky,然后在元件sky1中设置其Instance name为s3.
然后给第1祯添加如下Action动作脚本:
alp = 1;
//初始化变量alp的值为1
while (Number(alp)<20) {
name = "s" add alp;
//设置变量name的值为字符s和变量alp的组合
duplicateMovieClip("s3", name, Number(alp)+1);
setProperty(name, _rotation, alp*18);
alp = Number(alp)+1;
//复制对象s3,并设置其旋转
}
//进行20次循环
stop();
接下来制作冲击波的由远及进的运动效果,新建一个Movie clip影片剪辑元件,命名为Oval,进入元件的编辑状态后,将元件sky1拖到其编辑区中,然后在第50祯插入一个关键祯,将元件sky1放大并向下移动一段距离,最后建立Motion 运动过渡效果,第1祯和第50祯分别如图8和图9所示;
图8
图9
最后在第50祯添加Action: stop();.
4.接下来制作光芒四射的效果。新建一个Movie clip影片剪辑元件,命名为ray,进入元件的编辑区后,使用矩形工具绘制一个细长的矩形,并填充上蓝白渐变色,然后使用箭头工具调整一端为细尖,将有尖的一端旋转到上方,如图10所示:
图10
再新建一个Movie clip影片剪辑元件,命名为3ray,进入元件编辑状态后,分别分三此将元件ray拖到编辑区中,并如图11所示调整其相对位置:
图11
然后再建立一个Movie clip影片剪辑元件,命名为6ray,进入元件编辑区后,将元件3ray拖到编辑区中,在属性面板中设置其Instance name为3r,然后给第1祯添加如下Action 动作脚本;
setProperty("3r", _rotation, random(180));
//设置对象3r的旋转角度为0到180度之间的随机数
duplicateMovieClip("3r", "n", 1);
setProperty("n", _rotation, random(180));
//复制对象3r,并使其旋转
然后需要制作光芒旋转的效果,新建一个Movie clip影片剪辑元件,命名为6raymove,进入元件的编辑区后,将元件6ray拖进来,分别在第5祯和第15祯插入关键祯,然后对第5祯的6ray对象使用旋转工具进行逆时针旋转,对第15祯的6ray对象进行顺时针旋转,分别建立第1祯到第5祯,第6祯到第15祯的Motion运动过渡效果,需要在属性面板上设置Rotate项为Auto,属性面板如图12 所示:
图12
最后在最后一祯添加Action动作脚本; gotoAndPlay(1);.
5.最后要制作的就是夜空中迸发出的流星了,然后与上面的效果组合搭配起来,就是最终的绚丽的夜空了。
新建一个Moview clip影片剪辑元件,命名为rocket,进入元件编辑状态后,使用矩形工具绘制一个水平的矩形,并填充上蓝白渐变色,如图13所示:
图13
接下来制作流星运动的效果,新建一个Movie clip影片剪辑元件,命名为rocketmove,进入元件编辑区后,将元件rocket拖进来,然后在第30祯插入一个关键祯,将元件rocket水平向右移动一端距离,然后建立从第1祯到第30祯的Motion 运动过渡效果。
最后就需要使用Action动作脚本复制并控制一系列流星了,新建一个Movie clip影片剪辑元件,命名为dublicate,进入元件编辑状态后,只在第2祯插入一个关键祯,将元件rocketmove放如此祯,然后给第1祯添加如下所示Action动作脚本:
Count = 0;
//定义并初始化变量count
给第2祯添加如下所示Action动作脚本:
z = 0;
//定义变量z
while (Number(z)<6) {
Count = Number(Count)+1;
//设置变量count的值每次循环增1
name = "s" add Count;
//设置变量name的值为字符s和变量count的值的组合
rot = Number(random(360))+1;
//设置变量rot为360内的随机数
duplicateMovieClip("st3", name, Count);
setProperty(name, _xscale, 20+Number(Count*0.5));
setProperty(name, _rotation, rot);
z = Number(z)+1;
//复制对象st3并使其旋转和变形
}
//进行6次循环
给第3祯添加如下所示Action动作脚本:
if (Number(Count)>120) {
stop();
} else {
gotoAndPlay(2);
}
//根据cound的不同值执行不同的操作
最后的任务就是布置主场景了,只需要将上面制作的各种元件分别放到不同的图层中即可,这样一幅很酷的璀灿星光效果就制作完成了。从制作过程中可以明显的感到,制作一个复杂效果,其实可以将其分解为不同的简单效果,然后通过有机的结合和调整,就可以构成一个非常复杂的效果。