值得注意的是最后telltarget的使用,为什么要使用随机函数实现帧间跳转呢?这么做的目的是为了使复制出的mc的颜色不完全相同,才能表现出火焰的随机性。
下面开始制作烟雾效果,新建元件“烟动画”从library中拖拽“烟”元件到layer 1,分别在第5、10、15、20帧建立关键帧。单击第一帧,在frame面板中设置name属性为“b0”,单击第5帧,在frame面板中设置name属性为“b1”,单击第10帧,在frame面板中设置name属性为“b2”。使用scale与rotate调整每一关键帧上元件的大小与位置,并且在effect面板中调整各元件的颜色与透明度。在各关键帧之间分别建立motion动画。新建元件命名为“as烟动画”,将“烟动画”拖拽到layer 1,在instance面板中给它命名为“smoke”。双击第一帧,在弹出的actions面板中输入如下as:
k = 70;
b = random (3);
setProperty ("smoke", _visible, "0");
while (k<75) {
duplicateMovieClip ("smoke", "smoke" add k, k);
setProperty ("smoke" add k, _x, random (50));
setProperty ("smoke" add k, _y, random (30));
setProperty ("smoke" add k, _xscale, random (30)+70);
setProperty ("smoke" add k, _yscale, random (30)+70);
setProperty ("smoke" add k, _rotation, random (50));
tellTarget ("smoke" add k) {
gotoAndPlay ("b" add random (3));
}
k = number(k)+1;
}
完成了烟雾的制作。最后回到scene 1,从library中将“as火动画”与“as烟动画元件”拖拽到舞台,调整位置与大小就最终完成了作品。(如图六)

我们大量使用随机函数的目的是在于准确的表现烟火这一特殊效果的不确定性,有时浓烟滚滚,有时几缕青烟,红黄的火苗交替出现不正 象我们平常所见到的么。但凡自然界中的景象都有自身的随机性,也就是不确定性,因此在模仿这些效果的时候如何使用好random函数是值得大家好好考虑的问题。
源文件下载学习