package { import flash.display.Graphics; import flash.display.Shape; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Point; import flash.geom.Transform; public class MatrixTransform extends Sprite { public function MatrixTransform() { var p1:Point=new Point(10,10); var p2:Point=new Point(100,50); createRect(p1, p2, 1); //define matrix var m:Matrix=new Matrix(); m.identity(); m.translate(100,100); //transform shape var shape:Shape=createRect(p1, p2, 2); shape.transform.matrix=m; //transform coordinates explicitly p1=m.transformPoint(p1); p2=m.transformPoint(p2); createRect(p1,p2,2); } public function createRect(p1:Point, p2:Point, linewidth:int):Shape { var shape:Shape=new Shape(); var g:Graphics=shape.graphics; g.lineStyle(linewidth, 0x000000, 0.5); g.drawRect(p1.x, p1.y, Math.abs(p2.x-p1.x), Math.abs(p2.y-p1.y)); addChild(shape); return shape; } } }