两点间的折线运动
import flash.events.MouseEvent;
import flash.events.Event;
//运行的次数
var timex:int;
var timey:int;
//运行的速度
var vx:Number = 5;
var vy:Number = 10;
//运行的方向
var dirx:int;
var diry:int;
stage.addEventListener(MouseEvent.CLICK,onMcClickHandler);
function onMcClickHandler(e:MouseEvent):void
{
timex = Math.abs/*绝对值*/((this.mouseX-mc.x)/vx);
timey = Math.abs((this.mouseY-mc.y)/vy);
//计算方向
dirx = (this.mouseX-mc.x)>0?1:-1;
diry = (this.mouseY-mc.y)>0?1:-1;
mc.addEventListener(Event.ENTER_FRAME,onMcMove);
}
function onMcMove(e:Event):void
{
//如果横向运行的次数不为0
if(timex!=0)
{
//横向次数递减
timex--;
//更行x的位置
mc.x+= vx * dirx;
}
//如果纵向运行的次数不为0
if(timey!=0)
{
//纵向次数递减
timey--;
//更新y的位置
mc.y+=vy * diry;
}
//如果两方向运动的次数都为0,说明运动停止
if(timex==0 && timey==0)
{
mc.removeEventListener(Event.ENTER_FRAME,onMcMove);
}
}
浙公网安备 33010602011771号