as3 movieclip根据鼠标旋转

时间:2013-09-12 15:08:12

标签: actionscript-3 flash-cs5

您好我想要根据鼠标的角度旋转动画片段。我有这个代码看起来很好,根据我在网上搜索,但它不适合我 顺便说一下,这个movieclip有自己的类(Player.as),它是doc类的子类。 我已将影片剪辑放在舞台上。

public class Player extends MovieClip
{
    private var player:MovieClip;

    public function Player()
    {

        this.addEventListener(Event.ADDED_TO_STAGE,onStage);

    }
    private function onStage(e:Event)
    {

        stage.addEventListener(KeyboardEvent.KEY_DOWN, on_key_down);
        stage.addEventListener(KeyboardEvent.KEY_UP, on_key_up);
        this.addEventListener(Event.ENTER_FRAME,on_enter_frame);
        removeEventListener(Event.ADDED_TO_STAGE,onStage);
    }

    private function on_enter_frame(e:Event)
    {

        var dist_Y:Number =mouseY -this.y ;
        var dist_X:Number =mouseX -this.x ;
        var angle:Number = Math.atan2(dist_Y,dist_X);
        var degrees:Number = angle * 180/ Math.PI;
        this.rotation = degrees;

    }


}  

当我移动鼠标时,动画片段会旋转,但不会相应。我找不到这个问题,希望有人能提供帮助。感谢。

1 个答案:

答案 0 :(得分:0)

mouseX和mouseY应该是 stage.mouseX stage.mouseY ,因为你想要计算全局空间中不在玩家当地空间中的位置。