引用
沧海 的 FLASH传统入门9:水珠滑落
01)插入新图形元件,起名水珠,用椭圆工具,无线条色,填充色选放射型,然后点右边混色器,中间单击添加一个色标,把第一个色标设为白色10%透明,第二个色标先设成白色20%透明,第三个色标选黑色40%透明度,色标标位置如图所示:
画出水滴大小大约为:17*19,用填充变形工具
调成这样,放大如图所示:
(有很多水滴是从真实图片上抠出来的,素材费事,我们就画个意思下)02)插入新电影元件,起名滴落,把水珠元件拖入,分别在20、30、31、55帧上插入关键帧。在56帧上插入空白关键帧,在70帧上插入帧。
03)在滴落元件第1帧上把水珠元件大小改成约7*9,ALPHA设为0%透明,在30帧上把水珠元件向左移一个像素,在31帧上把水珠元件向右移一个像素,在55帧上把水珠元件垂直向下移动约400个像素,并把此处元件拉小约为7*9,ALPHA设为0%透明。最后分别在1、20、30、31帧上设置动画。示图:
(这段动画主要表现水滴从小到大从无到有的形成,然后左右抖动下,然后向下滑落消失)04)在56空白关键帧上给予以下动作语言:
this._y = random(400);
this._x = random(550);注:意思是水珠的Y坐标是400以内的随机数,X的坐标是550以类的随机数,至于这两个数字是怎么来的,这是我们FLASH场景默认大小,也就是我们水滴在场景有随机出现没有到不了的死角。
05)添加图层二,在图层二的20帧上插入关键帧,添加以下动作语言:
stop();
ys = random(8000)+1000;
setInterval(function () {
play();
}, ys);注:这是延迟效果,为什么在20帧上加,因为20帧时水滴已经变大成形了,然后就要抖动滴落了,这里加也STOP让水滴停下来,然后随便设个延时变量YS,是随机数8000+1000,也就是1000~9000之间随机数。setInterval是每隔一定时间调用函数,单位是毫秒。1秒是1000毫秒,那么就是1~9秒内随机调用function () 这个函数,这个函数的内容是play();播放被停止的水滴动画。(如果不加这个动作,水滴将一起涌出,一起滴落。。。)
06)再插入新电影元件,起名为水滴,把滴落元件拖入,起个实例名为sd,然后在第三帧插入帧,再添加图层二。
07)在水滴元件图层二的第1帧上给于以下动作语言:
i = 1
注:初始变量I的值为1。
08)在水滴元件图层二的第2帧上插入关键帧,再给于以下动作语言:
daxiao = (random(80)+50);
duplicateMovieClip("sd", i, i);
setProperty(i, _x, random(550));
setProperty(i, _y, random(400));
setProperty(i, _xscale, daxiao);
setProperty(i, _yscale, daxiao);
i++;注:设一个大小变量daxiao的值为50~130之间的随机数。
复制sd元件,起名为I(变量,目前为1),深度也为I(变量,目前为1)
设复制出来的I元件的X坐标为550以内的随机数。
设复制出来的I元件的Y坐标为400以内的随机数。
设复制出来的I元件的X方向缩放为DAXIAO变量,也就是百分之50~130以内的随机数。
设复制出来的I元件的Y方向缩放为DAXIAO变量,也就是百分之50~130以内的随机数。
I自己累加1(等于运行到这句时I变量值已经由1变成2了,再运行一次就是三了依此类推)09)在水滴元件图层二的第3帧上插入关键帧,再给于以下动作语言:
if (i<=15) {
gotoAndPlay(2);
} else {
stop();
}注:如果I小于或等于15,就反复运行第二帧,如果大于15,就停止在第三帧上,也就是始终保持画面上有16个水滴随机出现在某个位置上,大小也是随机的。
10)返回场景,随便导入一张背景图,再把水滴元件拉到场景中,测试影片:
-----------------------------------------------------------------------------------------------------------
老虎作业:
评论