·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3控制减速运动代码实例

时间:2013-05-15 15:41未知
[AS3]as3控制减速运动代码实例,as3控制减速,as3移动,as3位置

x方向的移动:(mouseX - object.x) * speed;

y方向的移动:(mouseY - object.y) * speed;

物体与目标位置的距离:

var vx:Number = (mouseX - circle.x);

var vy:Number = (mouseY - circle.y);

var distance:Number = Math.sqrt(vx*vx + vy*vy);

  1. package { 
  2.  import flash.display.Sprite; 
  3.  import flash.events.MouseEvent; 
  4.  import flash.events.TimerEvent; 
  5.  import flash.utils.Timer; 
  6.  public class Sample0515 extends Sprite 
  7.  { 
  8.   private var timer:Timer; 
  9.   private var circle:Sprite; 
  10.    
  11.   public function Sample0515() 
  12.   { 
  13.    circle = new Sprite(); 
  14.    circle.graphics.beginFill(0xFFFF00); 
  15.    circle.graphics.drawCircle(0,0,25); 
  16.    circle.graphics.endFill(); 
  17.    this.addChild(circle); 
  18.     
  19.    stage.addEventListener(MouseEvent.CLICK,onClick); 
  20.    timer = new Timer(30); 
  21.    timer.addEventListener(TimerEvent.TIMER,onTimer); 
  22.    timer.start(); 
  23.   } 
  24.   private function onClick(event:MouseEvent):void 
  25.   { 
  26.    if(circle.x != mouseX && circle.y != mouseY) 
  27.    { 
  28.     timer.start(); 
  29.    } 
  30.   }   
  31.    
  32.   private function onTimer(event:TimerEvent):void 
  33.   { 
  34.    var vx:Number = (mouseX - circle.x); 
  35.    var vy:Number = (mouseY - circle.y); 
  36.     
  37.    var distance:Number = Math.sqrt(vx*vx + vy*vy); 
  38.     
  39.    if(distance<1
  40.    { 
  41.     timer.stop(); 
  42.     circle.x = mouseX
  43.     circle.y = mouseY
  44.    } 
  45.    else 
  46.    { 
  47.     circle.x += vx * 0.1; 
  48.     circle.y += vy * 0.1;    
  49.    } 
  50.   } 
  51.  } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器