分享

as3 来回(上下)移动

 宜宾翠屏区 2019-04-10

//设置边界:上下左右

//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。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多