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

求as3物体移动算法
舞台上已有一个mc实例名称为sp,速度(speed) = 3,鼠标点击一下舞台的某个位置,sp慢慢的向鼠标点击的位置移动,求实例代码(as3)
办公室的菲佣 1年前 已收到1个回答 举报

小玉儿 幼苗

共回答了18个问题采纳率:100% 举报

下面是核心代码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我

1年前

5
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.016 s. - webmaster@yulucn.com