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; } } }