【问题标题】:Actionscript 3 rotate object to mouseActionscript 3将对象旋转到鼠标
【发布时间】:2016-08-25 14:52:03
【问题描述】:

您好,我在 youtube 上观看了 tut,我编写了这段代码以使对象旋转到鼠标位置,但它有点无法正常工作。

代码:

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

}

【问题讨论】:

    标签: flash actionscript adobe


    【解决方案1】:

    您需要从父影片剪辑中获取 mouseX 和 mouseY 坐标,因为:

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

    所以需要修改这两行:

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

    【讨论】:

    • 是的,我知道,我已经解决了问题,我使用 stage.mouseX 和 stage.mouseY 而不是 mouseX 和 mouseY。无论如何感谢您的回复。 :)
    猜你喜欢
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 2011-10-30
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多