Flash效果制作-璀灿星光

来源:岁月联盟 编辑:zhu 时间:2006-11-10
Flash效果制作-璀灿星光内容简介:静静的夜空,繁星点点,天空中不断滑过耀眼的光芒,给人一种很强的视觉冲击力,这样的夜空也许只能出现在无限的幻想中,不过没关系,这次我们用强大的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的不同值执行不同的操作

最后的任务就是布置主场景了,只需要将上面制作的各种元件分别放到不同的图层中即可,这样一幅很酷的璀灿星光效果就制作完成了。从制作过程中可以明显的感到,制作一个复杂效果,其实可以将其分解为不同的简单效果,然后通过有机的结合和调整,就可以构成一个非常复杂的效果。