宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

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

2016-10-13 00:16:48 点击量:7 标签: 收藏本文

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.  } 

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室