J'ai un sprite qui contient des données bitmap. Je souhaite donner à l'utilisateur la possibilité de redimensionner l'image avec un curseur. J'utilise le code ci-dessous, comme vous pouvez le voir, le problème est que la mise à l'échelle est additive, donc très rapidement, l'image disparaît totalement. Je comprends que je dois l'échelle de manière non additive, ne peut pas comprendre comment?AS3: Scaling Sprite avec matrice sur changement de curseur?
J'ai essayé de passer:
var m:Matrix = userImageCopy.transform.matrix;
lorsque userImageCopy détient l'image originale. cela a aidé à la mise à l'échelle, mais chaque fois que la mise à l'échelle a commencé, userImage a sauté à la position de l'imageImageCopy.
Une aide?
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;
}