当前位置:首页 > 学习 > flash学习
用简单代码给一张图片添加下雪动态效果
作者:似水流年 | 来源:原创 | 时间:2016-03-17 23:15:01 | 浏览字号【

这是完成后的效果

      

 

1.打开flash8,选择第一帧,然后  文件–导入–导入到舞台,选一张生活照片导入。
2.调整下图片的属性和舞台一样大小
3.点击第一帧,添加如下动作代码

fallSnow(this, 150, [550, 400]);
function fallSnow(path, num, size) {
for (var i = 0; i<num; i++) {
path.createEmptyMovieClip(“xue”+i, i);
var mc = path[“xue”+i];
mc._x = random(size[0]);
mc._y = random(size[1]);
mc.ro = [1, -1];
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[“xue”+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];
}
}
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;
}
}

4.测试动画,完成。

其中fallSnow(this, 150, [550, 400]);的数据要调成和舞台一样大小。

本页地址:http://www.wxchao.net/a/gongzuoxuexi/flashxuexi/2016/0317/25.html

发表评论 共有 条评论点击查看
用户名: 密码:
验证码: 匿名发表