[AS3]在它的中心周围旋转一个Sprite

时间:2014-01-23 08:40:15

标签: actionscript-3 rotation flashdevelop

我需要一些非常具体的问题帮助。 我看了一下并找到了一些答案,但并不像我需要的那样具体。

我正在使用flashdevelop,现在,我的鼠标光标(居中)后面有一个矩形(它是一个Sprite)。 当我滚动鼠标滚轮时,我想对它进行旋转,但是我需要旋转应用于它的中心,我需要对象同时保持在鼠标光标的中心。 而且我还需要以弧度为单位应用旋转,而不是以度为单位。

现在我明白了:

var mod:Number;

if (e.delta <= 0) {
    mod = -0.1;
}else {
    mod = 0.1;
}

有人可以帮帮我吗?在我看到之后,似乎我要使用矩阵和复杂的数学,但我不知道如何做我想做的事情。

1 个答案:

答案 0 :(得分:0)

你只需要将精灵的注册点保持在矩形的中心,使其围绕它的中心旋转。从(0,0)绘制精灵时,注册点是左上角而不是中心。以下是如何使其成为中心:

var rectangleSprite:Sprite = new Sprite();
rectangleSprite.graphics.lineStyle(3,0x00ff00);
rectangleSprite.graphics.beginFill(0x0000FF);
//please note that i am not drawing the sprite from (0,0), 
//instead i start from (-width/2,-height/2)
rectangleSprite.graphics.drawRect(-150,-75,300,150);
rectangleSprite.graphics.endFill();

对于弧度转换的度数,您只需要在应用旋转之前将弧度值乘以(180 / Math.PI)。

var rotationInDegrees = rotationInRadians*(180/Math.PI);