Я заканчиваю разработку приложения для дизайна, где вы можете загружать изображения и цвета.Я использую менеджер преобразования greensock.Я беру все, что пользователь делает, и записываю его, чтобы я мог воссоздать то, что они сделали в большем масштабе, за кулисами (для экспорта в целях печати)
Проблема, с которой я сталкиваюсь, связана с вращением и перемещением x изначения у.Менеджер преобразования делает все относительно центральной точки, но когда я воссоздаю объект изображения, точка регистрации находится вверху слева.Я нашел, как вращаться вокруг центра объекта, используя матрицу преобразования, но я не могу правильно перемещать x и y, потому что эти значения меняются при вращении.Я хочу просто переместить изображение влево или вправо относительно центра.Как я могу сделать это.
Вот как я вращаюсь.
private function rotateAroundCenter (ob:*, angleDegrees:Number, ptRotationPoint:Point) {
var m:Matrix=ob.transform.matrix;
m.tx -= ptRotationPoint.x;
m.ty -= ptRotationPoint.y;
m.rotate (angleDegrees*(Math.PI/180));
m.tx += ptRotationPoint.x;
m.ty += ptRotationPoint.y;
ob.transform.matrix=m;
}
РЕДАКТИРОВАТЬ: Вот еще немного кода, когда я преобразую элементы (это после того, как я изменил некоторые вещисогласно первому комментарию, приведенному ниже. (_j2sratio - это то, что я измеряю все для печати).
var newUI:MovieClip = new MovieClip();
var bmapHolder:MovieClip = new MovieClip();
bmapHolder.addChild(bmap);
bmapHolder.x = -bmapHolder.width/2;
bmapHolder.y = -bmapHolder.height/2;
newUI.addChild(bmapHolder);
newUI.width = $value.twidth * _j2sRatio;
newUI.height = $value.theight * _j2sRatio;
newUI.rotation = $value.rotation;
bmapHolder.scaleX = $value.scaleX * _newScale;
bmapHolder.scaleY = $value.scaleY * _newScale;
newUI.x = $value.positionX * _j2sRatio;
newUI.y = $value.positionY * _j2sRatio;