Referenshandbok för ActionScript® 3.0 i Adobe® Flash®-plattformen
Hem  |  Dölj paket och klasslista |  Paket  |  Klasser  |  Nyheter  |  Index  |  Bilagor  |  Varför på engelska?
Filter: Hämtar data från servern ...
Hämtar data från servern ...
flash.geom 

Matrix  - AS3

Paketflash.geom
Klasspublic class Matrix
ArvMatrix Inheritance Object

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

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.

Tillsammans kallas dessa omformningstyper affina omformningar. I affina omformningar bevaras linjernas räthet under omformningen så att parallella linjer förblir parallella.

Om du vill använda en omformningsmatris på ett visningsobjekt skapar du först ett Transform-objekt, anger dess matrix-egenskap till omformningsmatrisen och anger sedan visningsobjektets transform-egenskap till Transform-objektet. Matrix-objekt används också som parametrar för vissa metoder, som i följande:

  • Metoden draw() i BitmapData-objektet
  • Metoden beginBitmapFill(), metoden beginGradientFill() eller metoden lineGradientStyle() i ett Graphics-objekt.

Ett omformningsmatrisobjekt är en 3 x 3-matris med följande innehåll:

Matrix-klassens egenskaper i matrisnotationen

I traditionella omformningsmatriser innehåller egenskaperna u, v och w extra funktioner. Klassen Matrix fungerar bara i tvådimensionella rymder och antar därför alltid att egenskapsvärdena u och v är 0,0 och att egenskapsvärdet w är 1,0. De effektiva värdena i matrisen är följande:

Matrix-klassens egenskaper i matrisnotationen som visar antagna värden för u, v och w

Du kan hämta och ställa in värdena för alla de andra sex egenskaperna i ett Matrix-objekt: a, b, c, d, tx och ty.

Klassen Matrix stöder de fyra huvudtyperna av omformningar: translation, skalning, rotation och skevning. Du kan ställa in tre av dessa genom speciella metoder som beskrivs i tabellen nedan:

OmformningMetodMatrisvärdenVisa resultatBeskrivning
Översättning (förskjutning) translate(tx, ty) Matrisnotation av translate-metodens parametrar Illustration av translate-metodens effekter Flyttar bilden tx pixlar åt höger och ty pixlar ned.
Skalning scale(sx, sy) Matrisnotation av scale-metodens parametrar Illustration av scale-metodens effekter Ändrar bildens storlek och multiplicerar varje pixel placering med sxx-axeln och syy-axeln.
Rotation rotate(q) Matrisnotation av rotate-metodens egenskaper Illustration av rotate-metodens effekter Roterar bilden med vinkeln q som mäts i radianer.
Skevning Ingen; måste ange egenskaperna b och c Matrisnotation av skevningsfunktionens egenskaper Illustration av skevningsfunktionens effekter Skjuter bilderna progressivt i en riktning som är parallell med x- eller y-axeln. Matrix-objektets b-egenskap representerar skevningsvinkelns tangent längs y-axeln. Matrix-objektets c-egenskap representerar skevningsvinkelns tangent längs x-axeln.

Varje omformningsfunktion ändrar den aktuella matrisens egenskaper så att du kan kombinera flera omformningar effektivt. Detta gör du genom att anropa mer än en omformningsfunktion innan du använder matriser på dess visningsobjekt (genom att använda visningsobjektets transform-egenskap).

Använd konstruktorn new Matrix() för att skapa ett Matrix-objekt innan du anropar metoderna i Matrix-objektet.

Visa exemplen

Fler exempel

Relaterade API-element



Publika egenskaper
 EgenskapDefinieras med
  a : Number
Värdet som påverkar positioneringen på pixlarna utefter x-axeln vid skalning eller rotering av en bild.
Matrix
  b : Number
Värdet som påverkar positioneringen på pixlarna utefter y-axeln vid rotering eller skevning av en bild.
Matrix
  c : Number
Värdet som påverkar positioneringen på pixlarna utefter x-axeln vid rotering eller skevning av en bild.
Matrix
 Inheritedconstructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans.
Object
  d : Number
Värdet som påverkar positioneringen på pixlarna utefter y-axeln vid skalning eller rotering av en bild.
Matrix
  tx : Number
Avståndet som varje punkt ska översättas med på x-axeln.
Matrix
  ty : Number
Avståndet som varje punkt ska översättas med på y-axeln.
Matrix
Publika metoder
 MetodDefinieras med
  
Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)
Skapar ett nytt Matrix-objekt med de angivna parametrarna.
Matrix
  
Returnerar ett nytt Matrix-objekt som är en klon av den här matrisen med en exakt kopia av objektet i den.
Matrix
  
Sammanfogar en matris med den aktuella matrisen så att de två matrisernas geometriska effekter kombineras.
Matrix
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Kopierar ett Vector3D-objekt till en specifik kolumn för anropande Matrix3D-objekt.
Matrix
  
copyColumnTo(column:uint, vector3D:Vector3D):void
Kopierar en specifik kolumn i anropande Matrix-objekt till Vector3D-objektet.
Matrix
  
copyFrom(sourceMatrix:Matrix):void
Kopierar alla matrisdata från källans Point-objekt till anropande Matrix-objekt.
Matrix
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Kopierar ett Vector3D-objekt till en specifik rad för anropande Matrix-objekt.
Matrix
  
copyRowTo(row:uint, vector3D:Vector3D):void
Kopierar en specifik rad i anropande Matrix-objekt till Vector3D-objektet.
Matrix
  
createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Inkluderar parametrar för skalning, rotation och translation.
Matrix
  
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Skapar det angivna matrisformatet som förväntas av metoderna beginGradientFill() och lineGradientStyle() i klassen Graphics.
Matrix
  
Returnerar koordinaterna för en given punkt i koordinatrymden före omformning, efter att omformningen sker.
Matrix
 Inherited
Anger om det finns en egenskap angiven för ett objekt.
Object
  
Ställer in varje matrisegenskap på ett värde som orsakar en null-omformning.
Matrix
  
Utför motsatt omformning av den ursprungliga matrisen.
Matrix
 Inherited
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter.
Object
 Inherited
Anger om den angivna egenskapen finns och är uppräkningsbar.
Object
  
Tillämpar rotationsomformning på Matrix-objektet.
Matrix
  
Tillämpar skalningsomformning på Matrix-objektet.
Matrix
 Inherited
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder.
Object
  
setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void
Tilldelar matrismedlemmarna det angivna värdet
Matrix
 Inherited
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner.
Object
  
Returnerar ett textvärde som listar egenskaperna för det här Matrix-objektet.
Matrix
  
Returnerar resultatet från tillämpning av den geometriska omformningen som representeras av Matrix-objektet vid den angivna punkten.
Matrix
  
Matrisen omvandlas längs x- och y-axlarna enligt dx- och dy-parametrarna.
Matrix
 Inherited
Returnerar det angivna objektets primitiva värde.
Object
Egenskapsdetaljer

a

egenskap
public var a:Number

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Värdet som påverkar positioneringen på pixlarna utefter x-axeln vid skalning eller rotering av en bild.


Exempel  ( Så här använder du exemplet )
I följande exempel skapas ett Matrix-objekt som heter myMatrix och dess a-värde ställs in.
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.a);  // 1

myMatrix.a = 2;
trace(myMatrix.a);  // 2

b

egenskap 
public var b:Number

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Värdet som påverkar positioneringen på pixlarna utefter y-axeln vid rotering eller skevning av en bild.


Exempel  ( Så här använder du exemplet )
I följande exempel skapas ett Matrix-objekt med namnet myMatrix och dess b-värde ställs in.
import flash.geom.Matrix;
 
var myMatrix:Matrix = new Matrix();
trace(myMatrix.b);  // 0

var degrees:Number = 30;
var radians:Number = (degrees/180) * Math.PI;
myMatrix.b = Math.tan(radians);
trace(myMatrix.b);  // 0.5773502691896257

c

egenskap 
public var c:Number

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Värdet som påverkar positioneringen på pixlarna utefter x-axeln vid rotering eller skevning av en bild.


Exempel  ( Så här använder du exemplet )
I följande exempel skapas ett Matrix-objekt med namnet myMatrix och dess c-värde ställs in.
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.c);  // 0

var degrees:Number = 30;
var radians:Number = (degrees/180) * Math.PI;
myMatrix.c = Math.tan(radians);
trace(myMatrix.c);  // 0.5773502691896257

d

egenskap 
public var d:Number

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Värdet som påverkar positioneringen på pixlarna utefter y-axeln vid skalning eller rotering av en bild.


Exempel  ( Så här använder du exemplet )
I följande exempel skapas ett Matrix-objekt med namnet myMatrix och dess d-värde ställs in.
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.d);  // 1

myMatrix.d = 2;
trace(myMatrix.d);  // 2

tx

egenskap 
public var tx:Number

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Avståndet som varje punkt ska översättas med på x-axeln.


Exempel  ( Så här använder du exemplet )
I följande exempel skapas ett Matrix-objekt med namnet myMatrix och dess tx-värde ställs in.
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.tx);  // 0

myMatrix.tx = 50;  // 50
trace(myMatrix.tx);

ty

egenskap 
public var ty:Number

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Avståndet som varje punkt ska översättas med på y-axeln.


Exempel  ( Så här använder du exemplet )
I följande exempel skapas ett Matrix-objekt med namnet myMatrix och dess ty-värde ställs in.
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.ty);  // 0

myMatrix.ty = 50;
trace(myMatrix.ty);  // 50
Konstruktordetaljer

Matrix

()Konstruktor
public function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Skapar ett nytt Matrix-objekt med de angivna parametrarna. I matrisnotation ordnas egenskaperna så här:

Matrix-klassens egenskaper i matrisnotationen som visar antagna värden för u, v och w

Om du inte anger några parametrar för konstruktorn new Matrix() skapas en identitetsmatris med följande värden:

a = 1
b = 0
c = 0
d = 1
tx = 0
ty = 0

I matrisnotation ser identitetsmatrisen ut så här:

Matrix-klassens egenskaper i matrisnotationen

Parametrar
a:Number (default = 1) — Värdet som påverkar positioneringen på pixlarna utefter x-axeln vid skalning eller rotering av en bild.
 
b:Number (default = 0) — Värdet som påverkar positioneringen på pixlarna utefter y-axeln vid rotering eller skevning av en bild.
 
c:Number (default = 0) — Värdet som påverkar positioneringen på pixlarna utefter x-axeln vid rotering eller skevning av en bild.
 
d:Number (default = 1) — Värdet som påverkar positioneringen på pixlarna utefter y-axeln vid skalning eller rotering av en bild.
 
tx:Number (default = 0) — Avståndet som varje punkt ska översättas med på x-axeln.
 
ty:Number (default = 0) — Avståndet som varje punkt ska översättas med på y-axeln.

Exempel  ( Så här använder du exemplet )

I följande exempel skapas matrix_1 genom att inga parametrar skickas till Matrix()-konstruktorn och matrix_2 genom att parametrar skickas till den. Observera att matrix_1, som skapades utan parametrar, resulterar i en identitetsmatris med värdena a =1, b =0, c =0, d =1, tx =0, ty =0.
import flash.geom.Matrix;

var matrix_1:Matrix = new Matrix();
trace(matrix_1);  // (a=1, b=0, c=0, d=1, tx=0, ty=0)

var matrix_2:Matrix = new Matrix(1, 2, 3, 4, 5, 6);
trace(matrix_2);  // (a=1, b=2, c=3, d=4, tx=5, ty=6)
Metoddetaljer

clone

()metod
public function clone():Matrix

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Returnerar ett nytt Matrix-objekt som är en klon av den här matrisen med en exakt kopia av objektet i den.

Returnerar
Matrix — Ett Matrix-objekt.

concat

()metod 
public function concat(m:Matrix):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Sammanfogar en matris med den aktuella matrisen så att de två matrisernas geometriska effekter kombineras. I matematiska termer är det samma sak att sammanfoga två matriser och att kombinera dem med matrismultiplikation.

Om matrisen m1 exempelvis skalar ett objekt med faktorn fyra och matrisen m2 roterar ett objekt med 1,5707963267949 radianer (Math.PI/2), omvandlarm1.concat(m2) m1 till en matris som skalar ett objekt med faktorn fyra och roterar objektet med Math.PI/2 radianer.

Den här metoden ersätter källmatrisen med den sammanfogade matrisen. Om du vill sammanfoga de två matriserna utan att ändra någon av källmatriserna kan du först kopiera källmatrisen med metoden clone(), vilket visas i avsnittet Klassexempel.

Parametrar

m:Matrix — Den matris som ska sammanfogas med källmatrisen.

copyColumnFrom

()metod 
public function copyColumnFrom(column:uint, vector3D:Vector3D):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: Flash Player 11, AIR 3.0, Flash Lite 4

Kopierar ett Vector3D-objekt till en specifik kolumn för anropande Matrix3D-objekt.

Parametrar

column:uint — Kolumnen varifrån data kopieras.
 
vector3D:Vector3D — Vector3D-objekt varifrån data kopieras.

copyColumnTo

()metod 
public function copyColumnTo(column:uint, vector3D:Vector3D):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: Flash Player 11, AIR 3.0, Flash Lite 4

Kopierar en specifik kolumn i anropande Matrix-objekt till Vector3D-objektet. Elementet w för Vector3D-objektet kommer inte att ändras.

Parametrar

column:uint — Kolumnen varifrån data kopieras.
 
vector3D:Vector3D — Vector3D-objekt varifrån data kopieras.

copyFrom

()metod 
public function copyFrom(sourceMatrix:Matrix):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: Flash Player 11, AIR 3.0, Flash Lite 4

Kopierar alla matrisdata från källans Point-objekt till anropande Matrix-objekt.

Parametrar

sourceMatrix:Matrix — Matrix-objektet varifrån data kopieras.

copyRowFrom

()metod 
public function copyRowFrom(row:uint, vector3D:Vector3D):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: Flash Player 11, AIR 3.0, Flash Lite 4

Kopierar ett Vector3D-objekt till en specifik rad för anropande Matrix-objekt.

Parametrar

row:uint — Raden varifrån data kopieras.
 
vector3D:Vector3D — Vector3D-objekt varifrån data kopieras.

copyRowTo

()metod 
public function copyRowTo(row:uint, vector3D:Vector3D):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: Flash Player 11, AIR 3.0, Flash Lite 4

Kopierar en specifik rad i anropande Matrix-objekt till Vector3D-objektet. Elementet w för Vector3D-objektet kommer inte att ändras.

Parametrar

row:uint — Raden varifrån data kopieras.
 
vector3D:Vector3D — Vector3D-objekt varifrån data kopieras.

createBox

()metod 
public function createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Inkluderar parametrar för skalning, rotation och translation. När metoden tillämpas på en matris ställs matrisens värden in utifrån dessa parametrar.

Med createBox()-metoden kan du få samma matris som om du använde metoderna identity(), rotate(), scale(), och translate() i följd. Till exempel får mat1.createBox(2,2, Math.PI/4, 100, 100) samma effekt som följande:

     import flash.geom.Matrix;
     
     var mat1:Matrix = new Matrix();
     mat1.identity();
     mat1.rotate(Math.PI/4);
     mat1.scale(2,2);
     mat1.translate(10,20);
     

Parametrar

scaleX:Number — Den faktor som objektet ska skalas med vågrätt.
 
scaleY:Number — Den faktor som objektet ska skalas med lodrätt.
 
rotation:Number (default = 0) — Mängden rotation i radianer.
 
tx:Number (default = 0) — Antalet pixlar att omvandla (flytta) till höger längs x-axeln.
 
ty:Number (default = 0) — Antalet pixlar att omvandla (flytta) nedåt längs y-axeln.

Relaterade API-element


Exempel  ( Så här använder du exemplet )

I följande exempel anges x-skala, y-skala, rotation, x-placering och y-placering i myMatrix genom att dess createBox()-metod anropas.
package
{
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    public class Matrix_createBox extends Sprite
    {
        public function Matrix_createBox()
        {
             var myMatrix:Matrix = new Matrix();
             trace(myMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
             myMatrix.createBox(1, 2, Math.PI/4, 50, 100);
             trace(myMatrix.toString());  
             // (a=0.7071067811865476, b=1.414213562373095, c=-0.7071067811865475, 
             //  d=1.4142135623730951, tx=50, ty=100)
             
             var rectangleShape:Shape = createRectangle(20, 80, 0xFF0000);   
             addChild(rectangleShape);
              
             var rectangleTrans:Transform = new Transform(rectangleShape);
             rectangleTrans.matrix = myMatrix;
        }
        
        public function createRectangle(w:Number, h:Number, color:Number):Shape 
        {
            var rect:Shape = new Shape();
            rect.graphics.beginFill(color);
            rect.graphics.drawRect(0, 0, w, h);
            addChild(rect);
            return rect;
        }
    }
}

createGradientBox

()metod 
public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Skapar det angivna matrisformatet som förväntas av metoderna beginGradientFill() och lineGradientStyle()i klassen Graphics. Bredd och höjd skalas till ett scaleX / scaleY-par och värdena tx / ty förskjuts med halva bredden och höjden.

Ta till exempel en övertoning med följande egenskaper:

  • GradientType.LINEAR
  • Två färger, grönt och blått, med proportionsarrayen inställd på [0, 255]
  • SpreadMethod.PAD
  • InterpolationMethod.LINEAR_RGB

I följande bilder visas övertoningar där matrisen definierats med hjälp av metoden createGradientBox() med olika parameterinställningar:

createGradientBox()-inställningarResulterande övertoning
width = 25;
     height = 25; 
     rotation = 0; 
     tx = 0; 
     ty = 0;
resulterande linjär övertoning
width = 25; 
     height = 25; 
     rotation = 0; 
     tx = 25; 
     ty = 0;
resulterande linjär övertoning
width = 50; 
     height = 50; 
     rotation = 0; 
     tx = 0; 
     ty = 0;
resulterande linjär övertoning
width = 50;
     height = 50; 
     rotation = Math.PI / 4; // 45 degrees
     tx = 0; 
     ty = 0;
resulterande linjär övertoning

Parametrar

width:Number — Övertoningsrutans bredd.
 
height:Number — Övertoningsrutans höjd.
 
rotation:Number (default = 0) — Mängden rotation i radianer.
 
tx:Number (default = 0) — Avståndet i pixlar att omvandla till höger längs x-axeln. Värdet förskjuts med hälften av parametern width.
 
ty:Number (default = 0) — Avståndet i pixlar att omvandla nedåt längs y-axeln. Värdet förskjuts med hälften av parametern height.

Relaterade API-element


Exempel  ( Så här använder du exemplet )

I följande exempel anges x-skala, y-skala, rotation, x-placering och y-placering i myMatrix genom att dess createBox()-metod anropas.
package
{
    import flash.display.GradientType;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    
    public class Matrix_createGradientBox extends Sprite
    {
        public function Matrix_createGradientBox()
        {
             var myMatrix:Matrix = new Matrix();
             trace(myMatrix.toString());          // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
             myMatrix.createGradientBox(200, 200, 0, 50, 50);
             trace(myMatrix.toString());          // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150)
             
             var colors:Array = [0xFF0000, 0x0000FF];
             var alphas:Array = [100, 100];
             var ratios:Array = [0, 0xFF];
             
             this.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix);
             this.graphics.drawRect(0, 0, 300, 200);
        }
    }
}

deltaTransformPoint

()metod 
public function deltaTransformPoint(point:Point):Point

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Returnerar koordinaterna för en given punkt i koordinatrymden före omformning, efter att omformningen sker. Till skillnad från standardomformningen som används med metoden transformPoint() tar inte deltaTransformPoint()-metodens omformning hänsyn till översättningsparametrarna tx och ty.

Parametrar

point:Point — Punkten för vilken du vill få resultatet av en matrisomformning.

Returnerar
Point — Punkten som resulterar från användning av matrisomformningen.

identity

()metod 
public function identity():void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Ställer in varje matrisegenskap på ett värde som orsakar en null-omformning. Ett objekt som har omvandlats genom att en identitetsmatris används är identiskt med originalet.

När metoden identity() har anropats har den resulterande matrisen följande egenskaper: a =1, b =0, c =0, d =1, tx =0, ty =0.

I matrisnotation ser identitetsmatrisen ut så här:

Matrix-klassens egenskaper i matrisnotationen

invert

()metod 
public function invert():void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Utför motsatt omformning av den ursprungliga matrisen. Du kan tillämpa en omvänd matris på ett objekt för att ångra omformning som gjorts med den ursprungliga matrisen.


Exempel  ( Så här använder du exemplet )

I följande exempel skapas en halfScaleMatrix genom att metoden invert() i doubleScaleMatrix anropas. Sedan visas att de två matriserna är spegelbilder av varandra, det vill säga matriser som ångrar alla omformningar som görs av den andra genom att originalAndInverseMatrix skapas, som är lika med noScaleMatrix.
package
{
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    public class Matrix_invert extends Sprite
    {
        public function Matrix_invert()
        {
            var rect0:Shape = createRectangle(20, 80, 0xFF0000);   
            var rect1:Shape = createRectangle(20, 80, 0x00FF00);   
            var rect2:Shape = createRectangle(20, 80, 0x0000FF);
            var rect3:Shape = createRectangle(20, 80, 0x000000);
            
            var trans0:Transform = new Transform(rect0);
            var trans1:Transform = new Transform(rect1);
            var trans2:Transform = new Transform(rect2);
            var trans3:Transform = new Transform(rect3);
             
            var doubleScaleMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0);
            trans0.matrix = doubleScaleMatrix;
            trace(doubleScaleMatrix.toString());  // (a=2, b=0, c=0, d=2, tx=0, ty=0)
             
            var noScaleMatrix:Matrix = new Matrix(1, 0, 0, 1, 0, 0);
            trans1.matrix = noScaleMatrix;
            rect1.x = 50;
            trace(noScaleMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
            var halfScaleMatrix:Matrix = doubleScaleMatrix.clone();
            halfScaleMatrix.invert();
            trans2.matrix = halfScaleMatrix;
            rect2.x = 100;
            trace(halfScaleMatrix.toString());  // (a=0.5, b=0, c=0, d=0.5, tx=0, ty=0)
             
            var originalAndInverseMatrix:Matrix = doubleScaleMatrix.clone();
            originalAndInverseMatrix.concat(halfScaleMatrix);
            trans3.matrix = originalAndInverseMatrix;
            rect3.x = 150;
            trace(originalAndInverseMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)            
        }
        
        public function createRectangle(w:Number, h:Number, color:Number):Shape 
        {
            var rect:Shape = new Shape();
            rect.graphics.beginFill(color);
            rect.graphics.drawRect(0, 0, w, h);
            addChild(rect);
            return rect;
        }
    }
}

rotate

()metod 
public function rotate(angle:Number):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Tillämpar rotationsomformning på Matrix-objektet.

Metoden rotate() ändrar a, b, c och d-egenskaperna i Matrix-objektet. I matrisnotationen är detta samma sak som att sammanfoga den aktuella matrisen med följande:

Matrisnotation av scale-metodens parametrar

Parametrar

angle:Number — Rotationsvinkeln i radianer.

scale

()metod 
public function scale(sx:Number, sy:Number):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Tillämpar skalningsomformning på Matrix-objektet. x-axeln multipliceras med sx och y-axeln multipliceras med sy.

Metoden scale() ändrar Matrix-objektets a- ochd-egenskaper. I matrisnotationen är detta samma sak som att sammanfoga den aktuella matrisen med följande matris:

Matrisnotation av scale-metodens parametrar

Parametrar

sx:Number — En multiplikator som används för att skala objektet längs x-axeln.
 
sy:Number — En multiplikator som används för att skala objektet längs y-axeln.

setTo

()metod 
public function setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: Flash Player 11, AIR 3.0, Flash Lite 4

Tilldelar matrismedlemmarna det angivna värdet

Parametrar

aa:Number — värdet som ska tilldelas matrisen.
 
ba:Number
 
ca:Number
 
da:Number
 
txa:Number
 
tya:Number

toString

()metod 
public function toString():String

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Returnerar ett textvärde som listar egenskaperna för det här Matrix-objektet.

Returnerar
String — En sträng som innehåller värdena för egenskaperna i Matrix-objektet: a, b, c, d, tx och ty.

transformPoint

()metod 
public function transformPoint(point:Point):Point

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Returnerar resultatet från tillämpning av den geometriska omformningen som representeras av Matrix-objektet vid den angivna punkten.

Parametrar

point:Point — Punkten för vilken du vill få resultatet av en matrisomformning.

Returnerar
Point — Punkten som resulterar från användning av matrisomformningen.

translate

()metod 
public function translate(dx:Number, dy:Number):void

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Matrisen omvandlas längs x- och y-axlarna enligt dx- och dy-parametrarna.

Parametrar

dx:Number — Mängden rörelse till höger längs x-axeln i pixlar.
 
dy:Number — Mängden rörelse nedåt längs y-axeln i pixlar.

MatrixExample.as

I följande exempel används MatrixExample-klassen för att visa hur en övertoningsfylld fyrkant kan skapas. Detta visas i följande steg:
  1. Programmet skapar först ett nytt Matrix-objektmyMatrix. Sedan används metoden trace() för att skicka standardegenskapsvärden för myMatrix-objektet.
  2. Programmet anropar createGradientBox() med parametrarna width och height inställda på 200 pixlar, ingen rotation, och avståndet att omvandla längs x- och y-axlarna inställt på 50 pixlar.
  3. Programmet skriver ut myMatrix-objektet igen för att visa ändringen efter anropet till createGradientBox().
  4. Programmet ställer in tre variabler som styr hur övertoningsrutan fylls.
    • colors: Anger att övertoningsfärgerna varierar från heltäckande rött och heltäckande blått.
    • alphas: Ställer in opaciteten till heltäckande.
    • ratios: Ställer in likvärdig fördelning av färgerna för både rött och blått.
  5. Programmet anropar Graphics-metoden beginGradientFill() som verkar på myMatrix-objektet och anropar metoden lineTo(), vilket resulterar i en övertoningsfylld ruta.
package {
    import flash.geom.Matrix;
    import flash.display.Sprite;
    import flash.display.GradientType;

    public class MatrixExample extends Sprite {

        public function MatrixExample() {
            var myMatrix:Matrix = new Matrix();
            trace(myMatrix.toString());    // (a=1, b=0, c=0, d=1, tx=0, ty=0)

            myMatrix.createGradientBox(200, 200, 0, 50, 50);
            trace(myMatrix.toString());    // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150)

            var colors:Array = [0xFF0000, 0x0000FF];
            var alphas:Array = [1, 1];
            var ratios:Array = [0, 0xFF];
            graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix);
            graphics.lineTo(0, 300);
            graphics.lineTo(300, 300);
            graphics.lineTo(300, 0);
            graphics.lineTo(0, 0);
        }
    }
}




[ X ]Varför på engelska?
Innehåll i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen är på engelska

Det är inte alla delar av Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen som översätts till alla språk. Om ett språkelement inte översätts visas det på engelska. Klassen ga.controls.HelpBox översätts till exempel inte till något språk. I den svenska versionen av referenshandboken visas därför klassen ga.controls.HelpBox på engelska.