做雾 下雪 下雨的方法
做法其实很简单
做雾:
用的是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) {
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;
}
}
下雨效果制作方法
1、先建一个图形元件,命名“water”,在该元件上制作水滴效果。
2、接着建一个影片元件,可命名“rain”,在该元件上制作水滴下落效果。并按Ctrl+L打开“库”,在“库”中选中rain,打开右键菜单,随后打开“链接。。。”对话框,即链接属性对话框,在标志符中键入“rain0”,并在底下的连接多选项中选择“为动作脚本导出”和“为第一帧导出”。
3、再建一个影片元件,可命名“raining”,在该元件上添加Action scrīpt。
第一帧:
num=0;
nummanx=100; //设置最大雨滴数目
function rain(c) { //建立一个名为rain()的函数
this.attachMovie(“rain0”,”rain”+c,c);
var currain=eval(“this.rain”+0);
var size=random(25)+10 ; //使用函数random()随机设定雨滴大小值
currain._x=random(500) ; //随机设定实例currain的x轴位置
currain._xscale=size;
currain._yscale=size; //设置currain的大小
speed=3; //给变量speed赋值
currain.index=c; //给属性index赋值
}
第二帧:
for(var i=0;i<nummax;i++) { //遍历100个复制的实例
var therain=eval(“rain”+i);
if(therain._y<400)
therain._y+=speed;
else {
rain(therain.index);
}}
第三帧:
if(num<nummax) {
rain(num);
num++;
}
gotoAndPlay(2);
4、最后将给元件拖到场景的(0,0)处便可。