两点间的折线运动

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);
 }
}

 

posted on 2012-11-03 23:49  笔墨丹青  阅读(202)  评论(0)    收藏  举报

导航