1、最简单的方法: 只用FLASH做两个图层,第一层第一帧放图片(如果你想制作透明背景的,就不要放图片);第二层第一帧选中,然后按F9;在出现的动作面板框中贴上下面代码,就完成了。发布看看效果。你那里下雪了吗? 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); lineStyle(0, "0x000000", 0); for (var i = 1; i<=6; i++) { var a1 = -Math.PI/6+i*Math.PI/3; var a2 = i*Math.PI/3; lineTo((radius/5)*Math.sin(a1), -(radius/5)*Math.cos(a1)); lineTo(radius*Math.sin(a2), -radius*Math.cos(a2)); } endFill(); } } function scanTar(mc) { if (mc.startTime>=mc.xtime) { mc.startTime = 0; mc.xtime = random(20); mc.ro = [1, -1][random(2)]; } } function scanEdge(mc, size) { if (mc._x>size[0]) { mc._x = 0; } else if (mc._x<0) { mc._x = size[0]; } if (mc._y>size[1]) { mc._y = 0; } } 制作雪花的另外一种方法 主要的构思就是通过对一个雪花影片剪辑的复制出许多雪花,当然这是有限度的。不然cpu会受不了的。然后通过设置复制出来的雪花的位置坐标,达到下雪的效果。 具体步骤 1、 运行flash mx,设置文档属性为500*400。在图层1绘制一个渐变填充的背景。 2、 新建一个影片剪辑,命名为“雪花”。在编辑区内画一个简单的雪花形状。大小约为11*11像素。 3、 返回到主场景,把影片剪辑“雪花”拖放到场景中,在属性面板中命名为“snow”。 4、 选中影片剪辑,打开as面板,添加如下语句: onClipEvent (enterFrame) { //每播放一帧就执行一次下面的AS 5, 新建一个图层,在第1帧添加as i = 1; ---------------------------------------我是分割线--------------------------------------- 如果你喜欢我的文章,欢迎扫描二维码,关注我的微信公众号 ![]() |
|