晓宁博客

欢迎访问我的Blog

« 一键让Windows XP减肥解除河北电大计算机自主学习系统限制使用次数的方法 »

Flash中下雪特效代码

  首先打开flash,新建一个文件,导入一张适合的图片到舞台,选中第1帧,然后选择“动作-帧”,将下面蓝色部分代码复制到里面,做好的flash下雪特效动画如下面所示。

fallSnow(this, 150, [550, 400]); //150改变这个值可以设置下雪的大小,[550,400]设置在影片中下雪的范围是宽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 = 5; //改变5这个值可以设置从顶部开始落下的位置
}
}

  源文件下载地址:http://www.namipan.com/d/51db2527137db257f0ff52e7193613088587015500000200

原创文章,如需转载,请注明出处:
本文转自:晓宁博客 [ http://www.grnnet.com ]
原文地址:http://www.grnnet.com/post/99.html

  • quote 1.在路上
  • http://www.myenjoylife.cn
  • 呵呵,效果不错!FLASH这东西的确挺好,不过我不会FLASH编程,现在有时候需要弄个FLASH banner大部分都是从网上在线做的,效果没你做的这么好。Grimace
  • 2008-7-6 0:15:27 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722

Copyright © 2008 Grnnet.com All Rights Reserved.冀ICP备08105325号