coppelia大连:Flash AS3.0制作飘动的气泡内含详细注释
来源:百度文库 编辑:中财网 时间:2024/10/06 00:10:27
Flash AS3.0制作飘动的气泡内含详细注释 本帖最后由 athenaflash 于 2011-3-28 11:52 编辑
最近在网上发现了一个很不错的气泡漂浮代码,经验证没有任何错误。
效果:多个小气泡在屏幕上自由飘动,当气泡与气泡,气泡与边框碰撞的时候都会作出相应的动作。
function ball(r:int):MovieClip {
//自定义函数 ball,参数为 r,整数型,返回值为 MovieClip
var col:uint=0xffffff*Math.random(); //声明一个无符号整数型变量 col,获取任意颜色
var sh:MovieClip=new MovieClip(); //声明一个影片剪辑类实例 sh
sh.graphics.beginGradientFill(GradientType.LINEAR,[0xffffff,col,col],[0.5,0.5,1],[0,200,255]); //在 sh 中设置渐变填充样式(放射状渐变,颜色,透明度,色块位置)
sh.graphics.drawCircle(0,0,r); //在 sh 中画圆(圆心坐标(0,0),半径为参数r)
sh.graphics.endFill(); //结束填充
return sh; //返回 sh
}
var ballArr:Array=[]; //声明一个空数组 ballArr
for (var i:int=0; i<10; i++) { //创建一个 for 循环,循环 10次
var balls: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
function frame(e) {//定义帧频事件函数 frame
for (var i:int=0; i
var balls:MovieClip=ballArr;
//声明一个影片剪辑类实例 balls,获取数组 ballArr 的元素
balls.x+=balls.vx;
//balls的 X 坐标每帧增加balls.vx
balls.y+=balls.vy;
//balls的 Y 坐标每帧增加balls.vy
if (balls.x//如果balls 出了舞台左边缘
balls.x=balls.width/2;
//balls 的 X坐标获取balls 宽度的一半
balls.vx*=-1;//ba
lls.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.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 (var j:int=0; j
var ball0:MovieClip=ballArr[j]; //声明一个影片剪辑类实例 ball0,获取数组 ballArr 的元素
for (var m:int=j+1; m
var ball1:MovieClip=ballArr[m]; //声明一个影片剪辑类实例 ball1,获取数组 ballArr 的元素
var dx:Number=ball1.x-ball0.x; //声明一个数值型变量 dx,获取
var dy:Number=ball1.y-ball0.y; //声明一个数值型变量 dy,获取
var jl:Number=Math.sqrt(dx*dx+dy*dy); //声明一个数值型变量 jl,获取小球的距离
var qj:Number=ball0.width/2+ball1.width/2; //声明一个数值型变量获取小球半径之和
if (jl<=qj) { //如果 jl 小于等于 qj
var angle:Number=Math.atan2(dy,dx); //声明一个数值型变量angle,获取ball1 相对于 ball0 的角度
var tx:Number=ball0.x+Math.cos(angle)*qj*1.01; //声明一个数值型变量 tx,获取目标点的 X坐标
var ty: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方向的速度
}
}
}
}
最近在网上发现了一个很不错的气泡漂浮代码,经验证没有任何错误。
效果:多个小气泡在屏幕上自由飘动,当气泡与气泡,气泡与边框碰撞的时候都会作出相应的动作。
function ball(r:int):MovieClip {
//自定义函数 ball,参数为 r,整数型,返回值为 MovieClip
var col:uint=0xffffff*Math.random(); //声明一个无符号整数型变量 col,获取任意颜色
var sh:MovieClip=new MovieClip(); //声明一个影片剪辑类实例 sh
sh.graphics.beginGradientFill(GradientType.LINEAR,[0xffffff,col,col],[0.5,0.5,1],[0,200,255]); //在 sh 中设置渐变填充样式(放射状渐变,颜色,透明度,色块位置)
sh.graphics.drawCircle(0,0,r); //在 sh 中画圆(圆心坐标(0,0),半径为参数r)
sh.graphics.endFill(); //结束填充
return sh; //返回 sh
}
var ballArr:Array=[]; //声明一个空数组 ballArr
for (var i:int=0; i<10; i++) { //创建一个 for 循环,循环 10次
var balls: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
function frame(e) {//定义帧频事件函数 frame
for (var i:int=0; i
var balls:MovieClip=ballArr;
//声明一个影片剪辑类实例 balls,获取数组 ballArr 的元素
balls.x+=balls.vx;
//balls的 X 坐标每帧增加balls.vx
balls.y+=balls.vy;
//balls的 Y 坐标每帧增加balls.vy
if (balls.x
balls.x=balls.width/2;
//balls 的 X坐标获取balls 宽度的一半
balls.vx*=-1;//ba
lls.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.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 (var j:int=0; j
var ball0:MovieClip=ballArr[j]; //声明一个影片剪辑类实例 ball0,获取数组 ballArr 的元素
for (var m:int=j+1; m
var ball1:MovieClip=ballArr[m]; //声明一个影片剪辑类实例 ball1,获取数组 ballArr 的元素
var dx:Number=ball1.x-ball0.x; //声明一个数值型变量 dx,获取
var dy:Number=ball1.y-ball0.y; //声明一个数值型变量 dy,获取
var jl:Number=Math.sqrt(dx*dx+dy*dy); //声明一个数值型变量 jl,获取小球的距离
var qj:Number=ball0.width/2+ball1.width/2; //声明一个数值型变量获取小球半径之和
if (jl<=qj) { //如果 jl 小于等于 qj
var angle:Number=Math.atan2(dy,dx); //声明一个数值型变量angle,获取ball1 相对于 ball0 的角度
var tx:Number=ball0.x+Math.cos(angle)*qj*1.01; //声明一个数值型变量 tx,获取目标点的 X坐标
var ty: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方向的速度
}
}
}
}
怎样用flash制作飘动的红旗
flash飘动的头发
flash中如何制作丝带飘动效果
请问有没有可以飘动的而且带气泡声音的气泡的网页代码啊?
谁知道飘带飘动的动画FLASH
谁有飘动风铃的flash源码
问一下,一个做飘动的字的flash制作软件叫什么来?大概有9M左右大小
linux AS3.0 /etc/inittab的问题
请问哪里有FLASH方面红旗飘动的动画
谁有国旗飘动的flash 急要!!!谢谢!!
flash中一个物体自由飘动的语言什么写?
怎么让JS的飘动广告代码遇见flash时在flash上面飘
linux As3.0的操作系统可以用哪种ups来对付突然断电呢?
请问redhat as 3.0(update 4)与 as3.0的区别
哪个网站有flash动态特效,如,飘动的柳叶,金鱼,精美的一些?
枫叶飘动的flash哪里有下呢>>>>请帮忙.......
怎么让JS飘动的广告遇见FLASH时在上面显示
有小气泡的玻璃工艺品是怎样制作的?
拜金主义的真正内含?
“破斧沉舟”的内含是什么?
谁知道aci的内含
内含报酬率的解释
内含报酬率的计算
蛋糕制作--打气泡阶段。