Flash AS制作下雪动画效果使用纯Flash Actionscript实现的下雪动画效果。 效果演示:
点击这里下载源文件(解压密码:www.) 制作方法是把下面的代码直接放到新建立的Flash文档的第1帧里面: function addMasker()
{ _root.createEmptyMovieClip("masker", -2); with (masker) { lineStyle(1, 13421772, 100); beginFill(0, 100); moveTo(sideDisWidth, sideDisHeight); lineTo(sideDisWidth + sceneWidth, sideDisHeight); lineTo(sideDisWidth + sceneWidth, sideDisHeight + sceneHeight); lineTo(sideDisWidth, sideDisHeight + sceneHeight); endFill(); } // End of with createSnow(); } // End of the function function createSnow() { var _l1 = 0; while (_l1 < snowNum) { var _l2 = snowSpace.createEmptyMovieClip("s" + _l1, _l1); var _l3 = Math.random() * 3; drawSnow(_l2, _l3); _l1++; } // end while } // End of the function function drawSnow(snow, radius) { var p = radius * 0.900000; with (snow) { colors = [13421772, 16777215]; alphas = [100, 100]; ratios = [0, 255]; matrix = {matrixType: "box", x: -Math.random() * 2 * radius, y: -Math.random() * 2 * radius, w: 2 * radius, h: 2 * radius, r: 1.570796}; beginGradientFill("radial", colors, alphas, ratios, matrix); curveTo(p, -p, radius, 0); curveTo(p, p, 0, radius); curveTo(-p, p, -radius, 0); curveTo(-p, -p, 0, -radius); endFill(); } // End of with snowProperty(snow, sceneWidth, sceneHeight); } // End of the function function snowProperty(snow, w, h) { snow._x = sideDisWidth + Math.random() * w; snow._y = sideDisHeight + Math.random() * h; snow._rotation = Math.random() * 120 + 30; snow.stepX = Math.cos(snow._rotation * 3.141593 / 180); snow.stepY = Math.random() * 2 + 1; setInterval(snowFall, 30, snow); } // End of the function function snowFall(snow) { snow._x = snow._x + snow.stepX; snow._y = snow._y + snow.stepY; if (sideDisWidth > snow._x) { snow._x = sideDisWidth + sceneWidth; } // end if if (sideDisWidth + sceneWidth < snow._x) { snow._x = sideDisWidth; } // end if if (sideDisHeight + sceneHeight < snow._y) { snow._y = sideDisHeight; } // end if } // End of the function var sceneWidth = 550; var sceneHeight = 400; var sideDisWidth = Stage.width / 2 - sceneWidth / 2; var sideDisHeight = Stage.height / 2 - sceneHeight / 2; var snowNum = 150; var snowSpace = _root.createEmptyMovieClip("room", 1); addMasker(); 说明:
beginFill(0, 100); 将100改为0,即是透明背景;
var sceneWidth = 550;可修改宽度;
var sceneHeight = 400;可修改高度; var snowNum = 150;可修改雪花数量.
|
|