/** 

		 * 绕中心点旋转 

		 *  

		 * @param   mc  元件 

		 * @param   angle   角度 

		 */  

		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;  

		}  

  

posted on 2021-07-30 16:03  我是cdt  阅读(173)  评论(0编辑  收藏  举报