回到scene 1,从library中将“背景动画”元件拖拽到layer 1,在instance面板上将其命名为:yy。新建一层layer 2,从library中 将“流星动画“元件拖拽到layer 2,在instance面板将其命名为:xx,将其它元件依次拖拽到scene 1,并按图排列。分别将在各层的第2帧insert frame,新建一层,在第2帧建立关键帧,如图2
图2
双击此帧,输入如下as:
if (Number(i)>50) {
i = 0;
} //当I>50的时候,I=0
duplicateMovieClip ("/xx", "xx" add i, i);
setProperty ("xx" add i, _x, random (300));
setProperty ("xx" add i, _y, random ( 300));
//复制名称为xx 的mc,并利用random函数随机设置其坐标值
col = Random(0xafafaf)+0x999999;
//获得随机产生的颜色
xzcol = new Color(_root["xx" add i]);
xzcol.setRGB( col );
//将颜色值赋予mc
i = Number (i)+1;
gotoAndPlay (1);
语法知识:
random()函数:random在actionscript 中是一个应用相当广的函数,它的作用是获取0到指定整数之间的任意整数。利用它,我们可以解决随机显示,随机移动等一系列的效果。是复杂动画的基础,对random函数的灵活应用,是我们解决很多实际问题,创造奇妙效果的前提。我们来看看它的语法:
random(value);
参数
value:所生成随机整数的上限
实例
random(4)所返回值可能为0,1,2,3
new color()函数:new color()是一个面向对象color的函数,在使用color对象前必需使用构造器new color()来创建一个color对象
实例。new color()的语法:
new color(target)
参数
target是使用这个颜色方案的电影剪辑
setRGB()函数:setRGB()也是一个面向对象color的函数,它可以为一个颜色对象指定一个RGB值。语法:
xxx.setRGB(0xRRGGBB)
参数0xRRGGBB设置一个16进制的RGB值,RR,GG,BB各为16进制数,用来指定颜色,0x表示此数是16进制数。
实例
xxx.setRGB(0x006699)
为什么要在第2帧上添加as呢?因为我们知道每一颗流星都是要相隔一段时间才出现的,而不是一次全部出现在天空,因此我们在制作时也应当考虑这一点。先让我们看看动画的流程,当播放到第2帧时,复制出一个流星元件,接着播放第一帧,当再次播放第2帧时又复制一个流星元件。也就是说每次复制之间有一帧的间隔,这样就实现了流星逐个出现的效果。通过以上的操作,我们完成了流星雨的制作。如图3
图3
- 第1页:Flash实例教程:漫天流星耀夜空(1)
- 第2页:Flash实例教程:漫天流星耀夜空(2)