小玉儿
幼苗
共回答了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