//设置边界:上下左右
//var top:Number = 0;
var right:Number = stage.stageWidth;
//var bottom:Number = stage.stageHeight;
var left:Number = 0;
//设置位移:x、y 为水平和垂直轴
var vx:Number = 3;
//var vy:Number = 3;
//注册ENTER_FRAM事件侦听器
addEventListener(Event.ENTER_FRAME, mover);
//响应函数:负责影片的整个动画
function mover(e:Event):void {
ball.x += vx;
//ball.y += vy;
if (ball.x < left + ball.width / 2) {
ball.x = left + ball.width / 2;
vx *= -1;
} else if (ball.x > right - ball.width / 2) {
ball.x = right - ball.width / 2;
vx *= -1;
}
/*if (ball.y < top + ball.height / 2) {
ball.y = top+ball.height / 2;
vy *= -1;
} else if (ball.y > bottom - ball.height / 2) {
ball.y = bottom - ball.height / 2;
vy *= -1;
}*/
}
设置边界:
上和左边界为0,右和下边界为舞台的宽度和高度。
设置位移:
vx:Number = 3; 3为速度。
在Flash中的时间可以用帧频表示,帧频是指1秒内播放的帧数。要让Flash中的对象实现运动,只要用对象的位置加上速度,对象的位置用x和y属性表示。
注册ENTER_FRAM事件侦听器:
enterFrame事件基于帧频事件触发,会每隔1/n秒调用move()函数,这就是速度中的时间,变量vx是速度中的位移。当enterFrame事件发生时,就实现了mc的位移,即每1/n秒向右移动3像素。
响应函数:
ball.x += vx; 当前位置加速度。
使用 if 和 else 语句判断边界,如果小球 x 坐标大于左、右边界,就意味着它超出了左、右边界。
当检测到物体超出舞台后,开始应用弹性,不改变物体的位置,只改变它的速度向量。方法很简单:如果物体超出了左、右边界,只需要使它的 x 速度向量取反。如果超出了上、下边界,只需要让 y 速度向量取反。坐标轴取反非常简单,只需要乘以 -1 。如果速度向量等于3,则变成-3。如果是-3,则变成3。
联系客服