Klassen
Matrix
representerar en omformningsmatris som avgör hur punkter från en koordinatmodell ska kopplas till en annan. Du kan utföra olika grafiska omformningar på ett visningsobjekt genom att ställa in ett Matrix-objekts egenskaper och använda Matrix-objektet på ett Transform-objekts
matrix
-egenskap, och sedan använda Transform-objektet som visningsobjektets
transform
-egenskap. Dessa omformningsfunktioner är bland annat translation (omplacering av
x
och
y
), rotation, skalning och skevning.
Det är enklare att använda metoden
createBox()
för att definiera en matris trots att det går genom att ändra egenskaperna (
a
,
b
,
c
,
d
,
tx
,
ty
) i ett Matrix-objekt. Den här metoden innehåller parametrar för att direkt definiera skalning, rotation och omformningseffekter för den resulterande matrisen. I följande exempel skapas ett Matrix-objekt som ändrar skalan på ett objekt vågrätt med 2,0 och lodrätt med 3,0, roterar det 45 grader samt flyttar (omformar) det 10 pixlar åt höger och 20 pixlar nedåt:
var matrix:Matrix = new Matrix();
var scaleX:Number = 2.0;
var scaleY:Number = 3.0;
var rotation:Number = 2 * Math.PI * (45 / 360);
var tx:Number = 10;
var ty:Number = 20;
matrix.createBox(scaleX, scaleY, rotation, tx, ty);
Du kan också ändra skala, rotation och omformningseffekter för Matrix-objekt med metoderna
scale()
,
rotate()
och
translate()
. Observera att dessa metoder kombinerar värdena för det befintliga Matrix-objektet. I nästa exempel anges ett Matrix-objekt som ändrar objektets skala med faktorn 4 och roterar det 60 grader genom att metoderna
scale()
och
rotate()
anropas två gånger:
var matrix:Matrix = new Matrix();
var rotation:Number = 2 * Math.PI * (30 / 360); // 30°
var scaleFactor:Number = 2;
matrix.scale(scaleFactor, scaleFactor);
matrix.rotate(rotation);
matrix.scale(scaleX, scaleY);
matrix.rotate(rotation);
myDisplayObject.transform.matrix = matrix;
Om du vill skevningsomforma ett Matrix-objekt ska du ändra egenskapen
b
eller
c
. Genom ändring av egenskapen
b
skevar matrisen lodrätt medan ändring av egenskapen
c
får den att skeva vågrätt. I nästa exempel skevar Matrix-objektet
myMatrix
lodrätt med en faktor på 2:
var skewMatrix:Matrix = new Matrix();
skewMatrix.b = Math.tan(2);
myMatrix.concat(skewMatrix);
Du kan tillämpa en matrisomformning på egenskapen
transform
för ett visningsobjekt. I nästa exempel tillämpas en matrisomformning på ett visningsobjekt med namnet
myDisplayObject
:
var matrix:Matrix = myDisplayObject.transform.matrix;
var scaleFactor:Number = 2;
var rotation:Number = 2 * Math.PI * (60 / 360); // 60°
matrix.scale(scaleFactor, scaleFactor);
matrix.rotate(rotation);
myDisplayObject.transform.matrix = matrix;
I den första raden ställs ett matrisobjekt in för den aktuella matrisomformningen som används i visningsobjektet
myDisplayObject
(egenskapen
matrix
i egenskapen
transformation
i visningsobjektet
myDisplayObject
). På det här sättet får de anropade metoderna för Matrix-klassen en kumulativ effekt på visningsobjektets befintliga plats, skala och rotation.