package { import flash.display.DisplayObject; import flash.geom.Point; import flash.geom.Matrix; public class TransformWithPoint { public static function transformWithExternalPoint(displayOb:DisplayObject, regPiont:Point, angleDegrees:Number = 0, sx:Number = 1, sy:Number = 1):void {//自身坐标系 var m:Matrix = displayOb.transform.matrix; m.tx -= regPiont.x; m.ty -= regPiont.y; if (angleDegrees % 360 != 0) { m.rotate(angleDegrees*(Math.PI/180)); } if (sx != 1 || sy != 1) { m.scale(sx,sy); } m.tx += regPiont.x; m.ty += regPiont.y; displayOb.transform.matrix = m; } public static function transformWithInternalPoint(displayOb:DisplayObject, regPiont:Point, angleDegrees:Number = 0, sx:Number = 1, sy:Number = 1):void {//容器坐标系 var m:Matrix = displayOb.transform.matrix; regPiont = m.transformPoint(regPiont); m.tx -= regPiont.x; m.ty -= regPiont.y; if (angleDegrees % 360 != 0) { m.rotate(angleDegrees*(Math.PI/180)); } if (sx != 1 || sy != 1) { m.scale(sx,sy); } m.tx += regPiont.x; m.ty += regPiont.y; displayOb.transform.matrix = m; } } } //TransformWithPoint.transformWithInternalPoint(sp,new Point(100,100),90) //TransformWithPoint.transformWithExternalPoint(sp,new Point(50,50),90)
FLEX里图片绕中心旋转
原文地址:http://rss.9ria.com/?p=1998
猜你喜欢
转载自jie66989.iteye.com/blog/1751723
今日推荐
周排行