Flash CS4教程:全脚本打造飘动的气泡
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
效果: 详细代码: functionball(r:int):MovieClip{//自定义函数ball,参数为r,整数型,返回值为MovieClip varcol:uint=0xffffff*Math.random();//声明一个无符号整数型变量col,获取任意颜色 varsh:MovieClip=newMovieClip();//声明一个影片剪辑类实例sh sh.graphics.beginGradientFill(GradientType.RADIAL,[0xffffff,col,col],[0.5,1,1],[0,200,255]);//在sh中设置渐变填充样式(放射状渐变,颜色,透明度,色块位置) sh.graphics.drawCircle(0,0,r);//在sh中画圆(圆心坐标(0,0),半径为参数r) sh.graphics.endFill();//结束填充 returnsh;//返回sh } varballArr:Array=[];//声明一个空数组ballArr for(vari:int=0;i<10;i++){//创建一个for循环,循环10次 varballs:MovieClip=ball(Math.random()*20+20);//声明一个影片剪辑类实例balls,调用函数ball(参数r半径的值为20-40之间的随机值) addChild(balls);//把balls添加到显示列表 balls.x=Math.random()*(stage.stageWidth-balls.width)+balls.width/2;//balls的X坐标 balls.y=Math.random()*(stage.stageHeight-balls.height)+balls.height/2;//balls的Y坐标,使它出现在舞台的任意位置 balls.vx=Math.random()*2-1;//为balls设置自定义属性vx,数值为-1-1之间的随机数,表示X方向的速度 balls.vy=Math.random()*2-1;//为balls设置自定义属性vy,数值为-1-1之间的随机数,表示Y方向的速度 ballArr.push(balls);//把balls添加到数组ballArr中 } addEventListener(Event.ENTER_FRAME,frame);//添加帧频事件侦听,调用函数frame functionframe(e){//定义帧频事件函数frame for(vari:int=0;i<ballArr.length;i++){//创建一个for循环,循环次数为数组ballArr的元素数 varballs:MovieClip=ballArr[i];//声明一个影片剪辑类实例balls,获取数组ballArr的元素 balls.x+=balls.vx;//balls的X坐标每帧增加balls.vx balls.y+=balls.vy;//balls的Y坐标每帧增加balls.vy if(balls.x<balls.width/2){//如果balls出了舞台左边缘 balls.x=balls.width/2;//balls的X坐标获取balls宽度的一半 balls.vx*=-1;//balls.vx获取它的相反数 } if(balls.x>stage.stageWidth-balls.width/2){//如果alls出了舞台右边缘 balls.x=stage.stageWidth-balls.width/2;//balls的X坐标获取场景宽度与balls宽度一半的差 balls.vx*=-1;//balls.vx获取它的相反数 } if(balls.y<balls.height/2){//如果balls出了舞台上边缘 balls.y=balls.height/2;//balls的Y坐标获取balls高度的一半 balls.vy*=-1;//balls.vy获取它的相反数 } if(balls.y>stage.stageHeight-balls.height/2){//如果balls出了舞台下边缘 balls.y=stage.stageHeight-balls.height/2;//balls的Y坐标获取舞台高度与balls高度一半的差 balls.vy*=-1;//balls.vy获取它的相反数 } } for(varj:int=0;j<ballArr.length-1;j++){//创建一个for循环,循环次数比数组ballArr元素数少1 varball0:MovieClip=ballArr[j];//声明一个影片剪辑类实例ball0,获取数组ballArr的元素 for(varm:int=j+1;m<ballArr.length;m++){//创建一个for循环, varball1:MovieClip=ballArr[m];//声明一个影片剪辑类实例ball1,获取数组ballArr的元素 vardx:Number=ball1.x-ball0.x;//声明一个数值型变量dx,获取 vardy:Number=ball1.y-ball0.y;//声明一个数值型变量dy,获取 varjl:Number=Math.sqrt(dx*dx+dy*dy);//声明一个数值型变量jl,获取小球的距离 varqj:Number=ball0.width/2+ball1.width/2;//声明一个数值型变量获取小球半径之和 if(jl<=qj){//如果jl小于等于qj varangle:Number=Math.atan2(dy,dx);//声明一个数值型变量angle,获取ball1相对于ball0的角度 vartx:Number=ball0.x+Math.cos(angle)*qj*1.01;//声明一个数值型变量tx,获取目标点的X坐标 varty:Number=ball0.y+Math.sin(angle)*qj*1.01;//声明一个数值型变量ty,获取目标点的Y坐标 ball0.vx=-(tx-ball1.x);//ball0在X方向的速度 ball0.vy=-(ty-ball1.y);//ball0在Y方向的速度 ball1.vx=(tx-ball1.x);//ball1在X方向的速度 ball1.vy=(ty-ball1.y);//ball1在Y方向的速度 } } } } 附件下载: 全脚本飘动的气泡.rar 关键词:气泡 飘动 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Flash CS4教程:全脚本打造飘动的气泡的所有评论