首页 > 其他 > 详细

AS3 居中水平、垂直翻转DisplayObject

时间:2015-02-06 15:12:29      阅读:426      评论:0      收藏:0      [点我收藏+]

注:这里的DisplayObject的注册点都在左上角的原点(0,0)处,也就是说显示对象里面的内容的左上角与(0,0)坐标重合,如果你已经把显示对象的注册点弄到了内容的中心上,就不能不需要用这段代码了。


//com.cstar.utils.FlipUtil.as

package com.cstar.utils
{
    public class FlipUtil
    {
        public static function flipH(target:DisplayObject):void
        {
            if(!target)
            {
                return;
            }
            
            var matrix:Matrix=target.transform.matrix;
            //如果设置了3D属性,则matrix会变成null,无法再执行2D水平翻转
            if(!matrix)
            {
                return;
            }
            
            var m:Matrix=new Matrix(-1,0,0,1,target.x+target.width,0);
            matrix.concat(m);
	    target.transform.matrix=matrix;
        }
        
        public static function flipV(target:DisplayObject):void
        {
            if(!target)
            {
                return;
            }
            
            var matrix:Matrix=target.transform.matrix;
            //如果设置了3D属性,则matrix会变成null,无法再执行2D垂直翻转
            if(!matrix)
            {
                return;
            }
            
            var m:Matrix=new Matrix(1,0,0,-1,0,target.y+target.height);
            matrix.concat(m);
	    target.transform.matrix=matrix;
        }
    }
}


AS3 居中水平、垂直翻转DisplayObject

原文:http://cstar.blog.51cto.com/2923639/1612253

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!