+ -
当前位置:首页 → 问答吧 → transform.matrix 疑问,请高手指点

transform.matrix 疑问,请高手指点

时间:2011-07-26

来源:互联网

该函数功能是绕图片的中心点旋转指定角度
现在有个奇怪的问题,90度的旋转是很正常的。
但其他度数,比如10度的旋转,会时旋转后的长宽发生变化。
function rotateFrame(obj:Sprite,angle:Number):void{
var myMatrix:Matrix=obj.transform.matrix;//复制该容器的矩阵
var tempx:Number;
var tempy:Number;
var point:Point=new Point();
obj.localToGlobal(point);
tempx = obj.width/2+point.x;
tempy = obj.height/2+point.y;
myMatrix.translate(-tempx,-tempy);//将容器以中心点偏移到舞台左上角
myMatrix.rotate(Math.PI*angle/180);//将容器以舞台为轴旋转
myMatrix.translate(tempx,tempy);//将容器偏移回去
obj.transform.matrix=myMatrix;//应用新的矩阵,就在这句执行后,长宽有了一些细小的变化}

作者: conango   发布时间: 2011-07-26

FLASH本身就是这样的,旋转之后,长宽尺寸和原来的会有不同(标准的圆除外)

作者: flash023   发布时间: 2011-07-26