У меня есть спрайт, который содержит растровые данные.
Я хочу дать пользователю возможность изменить размер изображения с помощью ползунка.
Я использую код ниже, как вы можете видеть, проблема в том, что масштабирование является аддитивным, поэтому очень быстро изображение полностью исчезает.
Я понимаю, что мне нужно масштабировать его неаддитивным способом, просто не могу понять, как?
Я пытался передать:
var m:Matrix = userImageCopy.transform.matrix;
когда userImageCopy содержит исходное изображение. это помогло для масштабирования, но затем, каждый раз, когда начиналось масштабирование, userImage переходил на позицию userImageCopy.
Любая помощь?
function onSliderChange(evt:Event):void
{
trace( evt.target.value);
//this will create a point object at the center of the display object
var ptRotationPoint:Point = new Point(userImage.x + userImage.width / 2,userImage.y + userImage.height / 2);
//call the function and pass in the object to be rotated, the amount to scale X and Y (sx, sy), and the point object we created
scaleFromCenter(userImage, evt.target.value, evt.target.value, ptRotationPoint);
}
private function scaleFromCenter(ob:*, sx:Number, sy:Number, ptScalePoint:Point)
{
var m:Matrix = userImage.transform.matrix;
m.tx -= ptScalePoint.x;
m.ty -= ptScalePoint.y;
m.scale(sx, sy);
m.tx += ptScalePoint.x;
m.ty += ptScalePoint.y;
ob.transform.matrix = m;
}