flash 随机飘雪(落叶)请教

来源:百度知道 编辑:UC知道 时间:2024/05/20 21:43:44
我以前做过一个flash的随机飘雪效果,大概是这样

做2个影片组件影片1(m1)/影片2(m2),分别是两种雪花飘落的效果
然后放到主场景里起名m1/m2,然后写代码

间隔时间time1=random(1-5)秒;time2=random(1-5)秒
影片1出现的位置m1_x=random(0-200);m1_y=random(-5-0);
影片2出现的位置m2_x=random(5-150);m2_y=random(-5-0);
当然好像还可以改变影片1影片2的大小(即雪花的大小)
然后有个fuction来执行过了time1秒后,在指定的随机位置出现影片1;在time2秒后在随机位置出现影片2
这样飘雪的效果就形成了

具体的代码我忘了,想请教下高手,希望不吝赐教

随便导入一张有雪景的图片作为背景层,新建图层,在第一帧加以下脚本,测试,保存就可以了。也可以根据你的需要去设计场景动画,祝你成功!

fallSnow(this, 100, [550, 400]);
function fallSnow(path, num, size) {
for (var i = 0; i<num; i++) {
path.createEmptyMovieClip("s"+i, i);
var mc = path["s"+i];
mc._x = random(size[0]);
mc._y = random(size[1]);
mc.ro = [1, -1][random(2)];
mc.xtime = random(20);
mc.startTime = 0;
mc.id = Math.pow(i, 1/2);
createSnow(mc, mc.id/2.5, "0xffffff", 20*mc.id);
}
var loop = function () {
updateAfterEvent();
for (var i = 0; i<num; i++) {
var mc = path["s"+i];
mc._rotation += mc.ro*5;
mc._x += mc.id*mc.ro/10;
mc._y += mc.id/2;
mc.startTime++;
scanTar(mc);
scanEdge(mc, size);
}
};
var interval = setInterval(loop, 10);
}
function createSnow(mc, radius, c, alpha) {
with (mc) {
moveTo(0, -radius);
beginFill(c, alpha);
lineStyl