matrix绕中心旋转
public function centerRotate(mc:DisplayObject,angle:Number):void
{
var currentRotation:Number = mc.rotation;
//获取mc不旋转时候的尺寸
mc.rotation = 0;
var mcWidth:Number = mc.width;
var mcHeight:Number = mc.height;
mc.rotation = currentRotation;
//获取mc当前中心点坐标
var pointO:Point = mc.localToGlobal(new Point(mcWidth / 2, mcHeight / 2));
//旋转mc
mc.rotation = angle;
//获取mc旋转后中心点坐标
var pointO2:Point = mc.localToGlobal(new Point(mcWidth / 2, mcHeight / 2));
//平移到原来中心点O
var p3:Point = pointO.subtract(pointO2);
var matrix:Matrix = mc.transform.matrix;
matrix.translate(p3.x, p3.y);
mc.transform.matrix = matrix;
}
{
var currentRotation:Number = mc.rotation;
//获取mc不旋转时候的尺寸
mc.rotation = 0;
var mcWidth:Number = mc.width;
var mcHeight:Number = mc.height;
mc.rotation = currentRotation;
//获取mc当前中心点坐标
var pointO:Point = mc.localToGlobal(new Point(mcWidth / 2, mcHeight / 2));
//旋转mc
mc.rotation = angle;
//获取mc旋转后中心点坐标
var pointO2:Point = mc.localToGlobal(new Point(mcWidth / 2, mcHeight / 2));
//平移到原来中心点O
var p3:Point = pointO.subtract(pointO2);
var matrix:Matrix = mc.transform.matrix;
matrix.translate(p3.x, p3.y);
mc.transform.matrix = matrix;
}
posted on 2011-04-14 17:36 songqiuming 阅读(283) 评论(0) 编辑 收藏 举报