as3.0----Matrix的使用(旋转Sprite)

 DisplayObject.transform.matrix对象的使用过程如下:

  (1)创建一个Matrix对象myMatrix。

  (2)将目标显示对象的transform.matrix对象复制到myMatrix之中。

  (3)通过Matrix类的各种方法对myMatrix进程操作。

  (4)用myMatrix替换显示对象内部的transform.matrix。AS3的引擎会自动使用matrix的数据对显示对象进行相应变换。


   下面是一个旋转Sprite的实例代码,仅供参考:

package  {
    import flash.display.Sprite;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.display.Graphics;
    import flash.geom.Matrix;
    
    public class main extends Sprite {

        public function main() {
            var recSprit:Sprite = new Sprite();
            var graphic:Graphics = recSprit.graphics;
            graphic.beginFill(0xff0000,1);
            graphic.drawRect(0,0,100,50);
            graphic.endFill();
            /*
             因为要旋转sprite,所以要设定Sprite的x及y操作
            */
            recSprit.x = 100;
            recSprit.y = 100;
            this.addChild(recSprit);
            
            /*
            得到sprite的中心的x,y位置
            */
            var recx = recSprit.x + recSprit.width/2;
            var recy = recSprit.y + recSprit.height/2;
            
            
            /*
             复制Sprite对象的transform的matrix
            */
            var recMatrix:Matrix =recSprit.transform.matrix;
            /*
             把matrix的中心平移到坐标系原点
            */
            recMatrix.translate(-recx,-recy);
            /*
             在matrix的坐标原点处旋转
            */
            recMatrix.rotate(2 * Math.PI *(90/360));
            /*
             旋转完再平移matrix到Sprite的中心位置
            */
            recMatrix.translate(recx,recy);
            /*
             把matrix赋值给Sprite的transform的matrix属性
            */
            recSprit.transform.matrix = recMatrix;
            
        }
    }
    
}


你可能感兴趣的:(旋转,actionscript,Matrix,as3.0)