我Image
在某个容器中有组件,其clipAndEnableScrolling
属性设置为 true。我需要一个静态方法来获取这个Image
,旋转角度并Image
围绕容器的中心点旋转,而不会丢失任何先前的转换。我创建的最佳方法在几次旋转后会增加错误。
我觉得它必须像这样工作
public static function rotateImageAroundCenterOfViewPort(image:Image, value:int):void
{
// Calculate rotation and shifts
var bounds:Rectangle = image.getBounds(image.parent);
var angle:Number = value - image.rotation;
var radians:Number = angle * (Math.PI / 180.0);
var shiftByX:Number = image.parent.width / 2 - bounds.x;
var shiftByY:Number = image.parent.height / 2 - bounds.y;
// Perform rotation
var matrix:Matrix = new Matrix();
matrix.translate(-shiftByX, -shiftByY);
matrix.rotate(radians);
matrix.translate(+shiftByX, +shiftByY);
matrix.concat(image.transform.matrix);
image.transform.matrix = matrix;
}
但事实并非如此。看起来我无法理解转换是如何工作的(