flash中帧的提问

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:36:31
大家看一个下雨的flash制作代码:
第一帧代码:
i=1
第二帧代码:
duplicateMovieClip("rain", "rain"+i, i);
setProperty("rain"+i, _x, random(550));
setProperty("rain"+i, _y, random(400));
i++;
第三帧代码:
gotoAndPlay(2);
为什么要选择三帧呢?在第一个帧上写代码不可以吗?
下面的图是一个水滴出现然后消失的过程的一个flash的图片!我想问一下要选择5个帧?在一个帧上写不行吗?
还有就是影片剪辑在第二帧开始的话是什么过程?影片剪辑是一个动画在第一帧就可以完成!那如果一直延续到第五帧的话会出现什么情况呢?
我可能讲的不是很清楚!希望有好心的朋友留下自己的qq号!我加你给你个源文件问下你!重谢!

首先可以确定你还没有完全理解FLASH

FLASH播放总是往后走的,所以要重复前面的动作,就要在后面的帧上用动作(即gotoAndPlay(2);)返回,达到重复播放的目的。

因为水滴要渐渐消失,所以要有一个过程(即空下的那几帧),然后再返回到第2帧重复动作。

第1帧播放完就会播放第2帧,所以没有必要在第1帧写下gotoAndPlay(2);的。

记住帧总是往后运动的,所以要返回前面的帧重复就需要在后面的帧上用gotoAndPlay();语句。

------------------------------

你的代码的解释(很简要,希望你能理解了):
1帧,初始化i
2帧,让rain这个组件(应该是雨滴动画)任意出现在一定范围内,那个i++会在每一次执行后改变i的值(加1)
3、4帧,空下,就是让雨滴存在一段时间(极短)
5帧,返回执行第2帧。因为i的值已经改变,所以重新执行2帧时,rain组件的位置就会再次变化,所以感觉就是:雨滴一会在这,一会在那,就如同下雨般效果。

明白了吗?

我也来说两句

gotoAndPlay(2);这句话让这个程序能循环连续的执行下去,一播放到第五帧,就回到第二帧,执行i++,让雨滴渐渐多起来。但为什么不直接gotoAndPlay(1);呢?因为第一帧上i=1,每次都将i初始为1,显然不能达到雨滴增多的效果。

gotoAndPlay(2);这句话放在第二帧后面的任何位置均可。由这句话可以看出,作者的as水平还比较初级,代码放在一帧的写法应该是:

i=1;
function rainy(){
duplicateMovieClip("rain", "rain"+i, i);
setProperty("rain"+i, _x, random(550));
setProperty("rain"+i, _y, random(400));