Как получить визуальный угол (например, topLeft) повернутого displayObject в ActionScript 3? - PullRequest
1 голос
/ 06 февраля 2010

При вращении экранного объекта (вокруг его центра) визуальный угол элемента перемещается (фактические x и y «прямоугольника» остаются неизменными). Например, при повороте на 45 градусов координата x будет увеличиваться, а координата y будет уменьшаться, поскольку верхний левый угол теперь находится в верхнем центре "прямоугольника".

Я пытался использовать displayObject.getBounds (ordinSpace) .topLeft, однако этот метод просто возвращает x и y поля и, следовательно, не изменяется после поворота объекта.

Итак, как вы получаете x и y визуального угла повернутого экранного объекта?

Обновление: это то, что я имею в виду с положением визуального угла после поворота -> альтернативный текст http://feedpostal.com/cornerExample.gif

1 Ответ

2 голосов
/ 06 февраля 2010

Вам просто нужно перевести точку в координатное пространство ее родителя.

var box:Shape = new Shape();
box.graphics.beginFill(0xff0099);
box.graphics.drawRect(-50, -50, 100, 100);  // ... the center of the rectangle being at the middle of the Shape
addChild(box);

box.x = 100; // note: should be 100 + box.width * .5 in case you want to use the topleft corner to position
box.y = 100;                    
box.rotation = 45;

// traces the result (Point)                
trace( box.parent.globalToLocal(box.localToGlobal(box.getBounds(box).topLeft)) );
...