AS3 角度算法与实现

发布时间:2019-08-18 09:20:55编辑:auto阅读(1799)

    学习as3制作动画的时候发现一个好例子,箭头指向鼠标方向很有意思跟大家分享一下,都很简单的例子,箭头实体类代码如下
    package
    {
      import flash.display.Sprite;

      public class Arrow extends Sprite
      {
        public function Arrow()
        {
          init();
        }
        public function init():void
        {
          graphics.lineStyle(1,0,1);
          graphics.beginFill(0xffff00);
          graphics.moveTo(-50,-25);
          graphics.lineTo(0,-25);
          graphics.lineTo(0,-50);
          graphics.lineTo(50,0);
          graphics.lineTo(0,50);
          graphics.lineTo(0,25);
          graphics.lineTo(-50,25);
          graphics.lineTo(-50,-25);
          graphics.endFill();
        }
      }
    }
    运行类:
    package
    {
      import flash.display.SpreadMethod;
      import flash.display.Sprite;
      import flash.events.Event;
      import flash.events.KeyboardEvent;
      import flash.events.MouseEvent;
      import flash.ui.Keyboard;
        
      public class test extends Sprite
      {
        private var arrow:Arrow;
        public function test()
        {
          init();
        }
        public function init():void{
          arrow = new Arrow();
          addChild(arrow);
          arrow.x = stage.stageWidth/2;
          arrow.y = stage.stageHeight/2;
          addEventListener(Event.ENTER_FRAME,ratation);
        }
        public function ratation(event:Event):void{
          var dy:Number = mouseY-arrow.y;
          var dx:Number = mouseX-arrow.x;
          var ratation:Number = Math.atan2(dy,dx);
          arrow.rotation = ratation*180/Math.PI;
        }
      }
    }
    源代码在附件中

关键字