MatrixTransform.as
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;
}
}
}