
京东正然硅藻泥小爽为您解答,希望对您有帮助,若可以解决,望您采纳 谢谢
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:MovieClip = _root.createEmptyMovieClip("room", 1)//声明一个空影片剪辑snowSpace.
function addMasker() {//声明addMasker函数,执行两项工作.1是画外边框,2是画雪花景
_root.createEmptyMovieClip("masker", -2)//创建空影片剪辑masker,层深-2.任务是为舞台画外边框,并填充颜色
with (masker) {//设置masker的属性。
lineStyle(1, 0xcccccc, 100)//设置线条颜色
beginFill(0x000000, 0)//绘制矩形闭合路径,并填充灰色,透明度为0.
moveTo(sideDisWidth, sideDisHeight)//绘制起点
lineTo(sideDisWidth+sceneWidth, sideDisHeight)//绘制的右上角点的位置
lineTo(sideDisWidth+sceneWidth, sideDisHeight+sceneHeight)//绘制的右下角点的位置
lineTo(sideDisWidth, sideDisHeight+sceneHeight)//绘制的左下角点的位置
lineTo(sideDisWidth, sideDisHeight)//绘制的左上角点的位置
endFill()//结束绘制
}
createSnow()
}
function createSnow() {//定义一个匿名函数,完成声明一个雪花MC,雪花半径,循环画雪花
var n = 0//局部变量n=0
while (n<snowNum) {//在0到150数量范围循环画雪花
var snow:MovieClip = snowSpace.createEmptyMovieClip("s"+n, n)//声明snowSpace剪辑由"s"+n个snow组成
var radius:Number = Math.random()*3//定义雪花半径大小
drawSnow(snow, radius)//把snow, radius把参数传递给drawSnow函数
n++
}
}
function drawSnow(snow:MovieClip, radius:Number) {//定义一个匿名函数,画一个雪花
var p = radius*.9//局部变量P,用来定义雪花大小的坐标值
with (snow) {//设置snow这个对象的动作.画雪花圆形白色填充
colors = [0xCCCCCC, 0xFFFFFF]//设置雪花的颜色
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:(90/180)*Math.PI}//一个变形矩阵
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()//结束
}
snowProperty(snow, sceneWidth, sceneHeight)//把参数传递给snowProperty
}
function snowProperty(snow, w, h) {//定义一个匿名函数,一个雪花如何下降
snow._x = sideDisWidth+Math.random()*w//根据可编辑的宽及0和1中的任意一个数乘雪花宽计算雪花的X轴起始位置
snow._y = sideDisHeight+Math.random()*h//根据可编辑的高及0和1中的任意一个数乘雪花高计算雪花的Y轴起始位置
snow._rotation = Math.random()*120+30//设置旋转角度.有立体感.雪花的旋转程度为0和1中的任意一个数乘120+30
snow.stepX = Math.cos((snow._rotation*Math.PI)/180)//雪花横向位移.用计算余弦(旋转角度*常数3.14)/180)
snow.stepY = Math.random()*2+1//雪花纵向位移.为0和1中的任意一个数*2-1
setInterval(snowFall, 30, snow)//每隔0.5秒调用一次,由snowFall完成
}
function snowFall(snow) {//定义一个匿名函数,该函数为大雪花降落位移范围
snow._x += snow.stepX//横向下落位移
snow._y += snow.stepY//纵向下落位移
if (snow._x<sideDisWidth) {//如果横向位移不超出sideDisWidth值
snow._x = sideDisWidth+sceneWidth//为雪花的横坐标附值
}
if (snow._x>sideDisWidth+sceneWidth) { //如果雪花的横向坐标大于所附的值
snow._x = sideDisWidth//横向位移再回到初始点
}
if (snow._y>sideDisHeight+sceneHeight) {//如果雪花的纵向坐标大于所附的值
snow._y = sideDisHeight//纵向位移再回到初始点
}
}
addMasker()
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)