我希望此对象围绕其中心而不是左上角旋转。 代码如下所示:
switch (event.keyCode)
{
case 37:
car.rotation = -90;
car.x -= 5;
break;
因此,当我按下左键时,汽车向左转,但现在它会跳起来,因为它绕着顶角旋转。
由于
答案 0 :(得分:21)
以下内容围绕中心旋转:
public function rotateAroundCenter(object:DisplayObject, angleDegrees:Number):void {
if (object.rotation == angleDegrees) {
return;
}
var matrix:Matrix = object.transform.matrix;
var rect:Rectangle = object.getBounds(object.parent);
matrix.translate(-(rect.left + (rect.width / 2)), -(rect.top + (rect.height / 2)));
matrix.rotate((angleDegrees / 180) * Math.PI);
matrix.translate(rect.left + (rect.width / 2), rect.top + (rect.height / 2));
object.transform.matrix = matrix;
object.rotation = Math.round(object.rotation);
}
它将对象的中心转换为0,0然后旋转它然后将其转换回来。
答案 1 :(得分:8)
实现此目的的最简单方法是将汽车精灵/ movieclip添加到另一个精灵上,其中x和y坐标是宽度和高度属性的一半。如果用adobe flash绘制汽车,你也可以将它拖到左上角,这样中心点就在中间。