このオブジェクトを左上隅ではなく、中心を中心に回転させたいです。コードは次のようになります。
switch (event.keyCode)
{
case 37:
car.rotation = -90;
car.x -= 5;
break;
ですから、左のキーを押すと、車は左に曲がりますが、今のところ、上隅を中心に回転しているため、少し跳ね上がります。
ありがとう
以下は中心を中心に回転します:
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に変換してから回転させてから、元に戻します。
これを実現する最も簡単な方法は、車のスプライト/ムービークリップを別のスプライトに追加することです。ここで、x座標とy座標は、幅と高さのプロパティの半分です。車がAdobeFlashで描画されている場合は、中心点が中央になるように左上にドラッグすることもできます。