做法其实很简单 做雾: 用的是ps中的蒙板和云彩滤镜,高手可能已经想到了
步骤就是:
1。用ps新建一个透明的文件 2。在文件上新建一个图层 3。填充为白色 4。点击蒙板 5。点中蒙板然后使用云彩滤镜 6。存储为透明格式的png文件 7。打开flash 8。导入一个图片(最好是风景)到场景 9。新建图层,导入我们刚刚建立的雾的图片 10。讲我们的雾图片转换为影片剪辑 11。然后设置该影片剪辑的补间动画(适当的调整透明度,并多加几个动作) 12。测试影片应该就ok了
FLASH中制作下雪的方法
思路: 当主场景加载时,有一定数量的雪花随机地分布在画面上,每帧播放后,这些雪花又会在x轴和y轴方向进行随机的位移,从而在整体上产生下雪的效果.
步骤: 1.打开flash MX 2004,新建文档,文档大小550*400像素,帧频设为25FPS. 2.用线条工具在舞台上画出一朵雪花,将该雪花选中,按F8将其转换为电影剪辑,将主场景雪花电影剪辑删除. 3.按ctrl+L打开库,在库中选中雪花电影剪辑,按右键后,在弹出的菜单中选"链接",在接下来弹出的"链接属性"窗口中,将"标识符"设为snow,并在"为动作脚本导出"和"在第一帧导出"前打上勾. 4.回主场景,选中图层1的第1帧,按F9键打开动作脚本编辑窗口,输入以下代码:
this.onLoad = function (){ n = 60; var i = 1; while (n >= i){ this.attachMovie("snow", "snow" + i, i); var a = Math.round(60 * Math.random() + 41); var b = Math.round(50 * Math.random() + 51); with (this["snow" + i]){ _x = 550 * Math.random(); _y = 400 * Math.random(); _xscale = a; _yscale = a; _alpha = b; _rotation =a; this["snow" + i].x = Math.cos(Math.PI * Math.random());//雪花沿x轴每帧播放后的位移增量 this["snow" + i].y = 2+ 2*Math.random();//雪花沿y轴每帧播放后的位移增量 } i++; } } this.onLoad(); this.onEnterFrame = function(){ var a = 1; while (n>= a){ with (this["snow" + a]){ _x += x; _y += y; _rotation += y; if (_y > 400){ _y =0; }else if (_x>550){ _x=0; }else if(_x<0){ _x=550; } } a++; } } 5.按ctrl+enter测试影片
【FLASH小窍门】飘雪效果一帧搞掂
运行Macromedia FlashMX 2004 (Flash 动画制作)软件
1.导入一张图片,锁定
2,新建图层二
3.选中图层二第一帧按F9(打开动作面版)粘贴下面语句,回车测试.OK,一帧搞定!
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) { |