Flash雪花脚本的编写

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Flash雪花脚本的编写

v a r s c e n e Wi d t h=550;//定义场景的宽

v a r s c e n e H e i g h t=400;//定义场景的高

v a r s i d e D i s Wi d t h=S t a g e.w i d t h/2-s c e n e Wi d t h/2;//定义变量,雪花的横向位移范围

v a r s i d e D i s H e i g h t=S t a g e.h e i g h t/2-s c e n e H e i g h t/2;//定义变量,雪花的纵向位移范围

v a r s n o w N u m=150;//定义雪花的数量

v a r s n o w S p a c e:M o v i e C l i p=_r o o t.c r e a t e E m p t y M o v i e C l i p("r o o m",1);//声明一个空影片剪辑s n o w S p a c e.

f u n c t i o n a d d M a s k e r() {//声明a d d M a s k e r函数,执行两项工作.1是画外边框,2是画雪花景_r o o t.c r e a t e E m p t y M o v i e C l i p("m a s k e r",-2);//创建空影片剪辑m a s k e r,层深-2.任务是为舞台画外边框,并填充颜色

w i t h(m a s k e r){//设置m a s k e r的属性。

l i n e S t y l e(1,0x c c c c c c,100);//设置线条颜色

b e g i n F i l l(0x000000,0);//绘制矩形闭合路径,并填充灰色,透明度为0.

m o v e To(s i d e D i s Wi d t h,s i d e D i s H e i g h t);//绘制起点

l i n e To(s i d e D i s Wi d t h+s c e n e Wi d t h,s i d e D i s H e i g h t);//绘制的右上角点的位置

l i n e To(s i d e D i s Wi d t h+s c e n e Wi d t h,s i d e D i s H e i g h t+s c e n e H e i g h t);//绘制的右下角点的位置l i n e To(s i d e D i s Wi d t h,s i d e D i s H e i g h t+s c e n e H e i g h t);//绘制的左下角点的位置

l i n e To(s i d e D i s Wi d t h,s i d e D i s H e i g h t);//绘制的左上角点的位置

e n d F i l l();//结束绘制

}

c r e a t e S n o w();

}

f u n c t i o n c r e a t e S n o w() {//定义一个匿名函数,完成声明一个雪花M C,雪花半径,循环画雪花

v a r n=0;//局部变量n=0

w h i l e(n

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

snow._x = sideDisWidth+sceneWidth;//为雪花的横坐标附值

}

if (snow._x>sideDisWidth+sceneWidth) { //如果雪花的横向坐标大于所附的值

snow._x = sideDisWidth; //横向位移再回到初始点

}

if (snow._y>sideDisHeight+sceneHeight) {//如果雪花的纵向坐标大于所附的值

snow._y = sideDisHeight;//纵向位移再回到初始点

}

}

addMasker();

相关文档
最新文档