作业帮 > 综合 > 作业

求as3物体移动算法舞台上已有一个mc实例名称为sp,速度(speed) = 3,鼠标点击一下舞台的某个位置,sp慢慢的

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/12 15:08:24
求as3物体移动算法
舞台上已有一个mc实例名称为sp,速度(speed) = 3,鼠标点击一下舞台的某个位置,sp慢慢的向鼠标点击的位置移动,求实例代码(as3)
求as3物体移动算法舞台上已有一个mc实例名称为sp,速度(speed) = 3,鼠标点击一下舞台的某个位置,sp慢慢的
下面是核心代码private function onMouseClickHandle(evt:MouseEvent):void
  {
   //记录目标位置
   targetPosX = evt.stageX; 
   targetPosY = evt.stageY;
   
   //分别记录x方向和y方向上的速度
   var ang:Number = Math.atan2(targetPosY - mc.y, targetPosX - mc.x);
   speedX = speed * Math.cos(ang);
   speedY = speed * Math.sin(ang);
   
   //设置mc运动
   isMove = true;
  }上面的方法是在点击舞台的时候调用private function onEnterFrameHandle(evt:TimerEvent):void
  {
   if(!isMove)
   {
    return;
   }
   if(Math.sqrt((mc.x - targetPosX) * (mc.x - targetPosX) + (mc.y - targetPosY) * (mc.y - targetPosY)) < 2 )
   {
    //如果mc和目标位置的距离小于2,将设置mc不可运动,将mc位置调至目标位置
    isMove = false;
    mc.x = targetPosX;
    mc.y = targetPosY;
   }
   else
   {
    mc.x += speedX;
    mc.y += speedY;
   }
  }上面的方法是在Event.ENTER_FRAME中触发,我这里用的是Timer详细的代码,请看附件,直接新建一个Fla(Actionscript 3.0)文档  将此类设置为文档类,测试,就会出效果了,不明白的话  Hi我