2016-04-30 85 views
0

您好,我在YouTube上观看了tut,并且我编写了此代码以使对象旋转到鼠标位置,但它有点不能正常工作。Actionscript 3将对象旋转到鼠标

代码:

package { 

import flash.display.MovieClip; 
import flash.events.Event; 

public class char extends MovieClip 
{ 
    private var _pointer = this; 

    public function char() 
    { 
     addEventListener(Event.ENTER_FRAME, onEnter); 
    } 

    private function onEnter(event:Event):void 
    { 
     //Initialize dx and dy variables 
     var dx:Number = mouseX - _pointer.x; 
     var dy:Number = mouseY - _pointer.y; 

     //Store angle in angle variable 
     var angle:Number = Math.atan2(dy, dx) * 180/Math.PI; 

     //Apply angle 
     _pointer.rotation = angle; 
    } 
} 

}

回答

0

你需要采取mouseX和mouseY的从父影片剪辑,因为坐标:

  1. _pointer.x和_pointer.y也在表达父母的坐标系
  2. 电影的旋转将干扰mouseX和mouseY的值(它们将反映未旋转的对象)

所以,你需要修改这些两行:

var dx:Number = parent.mouseX-_pointer.x; 
var dy:Number = parent.mouseY-_pointer.y; 
+0

是的,我知道,我没有固定的问题我已经使用stage.mouseX和stage.mouseY代替mouseX和mouseY的。无论如何,感谢您的回应。 :) – rivor2

+0

也是你的解决方案也可以工作,只是测试。 – rivor2