Paketflash.geom
Klassepublic class Matrix
VererbungMatrix Inheritance Object

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Die Matrix-Klasse stellt eine Transformationsmatrix dar, die festlegt, wie Punkte eines Koordinatenraums einem anderen Koordinatenraum zugeordnet sind. Sie können verschiedene grafische Transformationen für ein Anzeigeobjekt durchführen, indem Sie die Eigenschaften eines Matrix-Objekts festlegen, dieses Matrix-Objekt auf die matrix-Eigenschaft eines Transform-Objekts anwenden und dieses Transform-Objekt dann als transform-Eigenschaft des Anzeigeobjekts anwenden. Die verfügbaren Transformationsfunktionen sind Schieben (x- und y-Neupositionierung), Drehen, Skalieren und Neigen.

Diese Transformationsfunktionen werden als affine Transformationen bezeichnet. Bei affinen Transformationen bleiben gerade Linien erhalten, d. h., parallele Linien bleiben parallel.

Wenn Sie eine Transformationsmatrix auf ein Anzeigeobjekt anwenden möchten, erstellen Sie ein Transform-Objekt, und legen Sie die entsprechende matrix-Eigenschaft für die Transformationsmatrix und dann die transform-Eigenschaft des Anzeigeobjekts für das Transform-Objekt fest. Matrix-Objekte werden auch als Parameter für bestimmte Methoden verwendet. Dazu zählen u. a. die folgenden Methoden:

Ein Transformationsmatrixobjekt ist eine 3x3-Matrix mit dem folgenden Inhalt:

In herkömmlichen Transformationsmatrizen werden zusätzliche Funktionen über die Eigenschaften u, v und w bereitgestellt. Die Matrix-Klasse kann nur im zweidimensionalen Raum verwendet werden. Es wird daher vorausgesetzt, dass der Wert der Eigenschaften u und v 0,0 ist und der Wert der Eigenschaft w 1,0. Die effektiven Werte der Matrix sind wie folgt:

Auch die Werte aller anderen sechs Eigenschaften eines Matrix-Objekts lassen sich abrufen und setzen: a, b, c, d, tx und ty.

Die Matrix-Klasse unterstützt die vier Haupttypen der Transformationsfunktionen: Schieben, Skalieren, Drehen und Neigen. Sie können drei dieser Transformationen über spezielle Methoden festlegen, die in der folgenden Tabelle beschrieben sind.

TransformationVorgehensweiseMatrixwerteAnzeigeergebnisBeschreibung
Verschieben (Versetzen)translate(tx, ty) Verschiebt das Bild um tx Pixel nach rechts und ty Pixel nach unten.
Skalierenscale(sx, sy)Ändert die Bildgröße, wobei die Position jedes Pixels mit sx auf der x-Achse und mit sy auf der y-Achse multipliziert wird.
Drehungrotate(q)Dreht das Bild um den Winkel q, der im Bogenmaß angegeben wird.
Neigen oder Scheren Keine Methode. Die Eigenschaften b und c müssen festgelegt werden.Verschiebt das Bild stufenweise in paralleler Richtung zur x- oder y-Achse. Die b-Eigenschaft des Matrix-Objekts gibt die Tangente des Neigungswinkels entlang der y-Achse an und die c-Eigenschaft des Matrix-Objekts die Tangente des Neigungswinkels entlang der x-Achse.

Bei jeder Transformation werden die aktuellen Matrixeigenschaften geändert. Daher können Sie mehrere Transformationen miteinander kombinieren. Rufen Sie dazu mehrere Transformationsfunktionen auf, bevor Sie die Matrix auf das entsprechende Anzeigeobjekt anwenden (mithilfe der transform-Eigenschaft des Anzeigeobjekts).

Erstellen Sie mit dem new Matrix()-Konstruktor ein Matrix-Objekt, bevor Sie die Methoden des Matrix-Objekts aufrufen können.

Beispiele anzeigen

Siehe auch

flash.display.DisplayObject.transform
flash.geom.Transform
flash.display.BitmapData.draw()
flash.display.Graphics.beginBitmapFill()
flash.display.Graphics.beginGradientFill()
flash.display.Graphics.lineGradientStyle()


Öffentliche Eigenschaften
 EigenschaftDefiniert von
  a : Number
Der Wert in der ersten Zeile und ersten Spalte des Matrix-Objekts, der sich beim Skalieren oder Drehen eines Bilds auf die Positionierung von Pixeln entlang der x-Achse auswirkt.
Matrix
  b : Number
Der Wert in der ersten Zeile und zweiten Spalte des Matrix-Objekts, der sich beim Drehen oder Skalieren eines Bilds auf die Positionierung von Pixeln entlang der y-Achse auswirkt.
Matrix
  c : Number
Der Wert in der zweiten Zeile und ersten Spalte des Matrix-Objekts, der sich beim Drehen oder Skalieren eines Bilds auf die Positionierung von Pixeln entlang der x-Achse auswirkt.
Matrix
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  d : Number
Der Wert in der zweiten Zeile und zweiten Spalte des Matrix-Objekts, der sich beim Skalieren oder Drehen eines Bilds auf die Positionierung von Pixeln entlang der y-Achse auswirkt.
Matrix
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
  tx : Number
Der Abstand, um den jeder Punkt entlang der x-Achse verschoben werden soll.
Matrix
  ty : Number
Der Abstand, um den jeder Punkt entlang der y-Achse verschoben werden soll.
Matrix
Öffentliche Methoden
 MethodeDefiniert von
  
Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)
Erstellt ein neues Matrix-Objekt mit den angegebenen Parametern.
Matrix
  
Gibt ein neues Matrix-Objekt zurück, das ein Klon dieser Matrix ist, mit einer exakten Kopie des enthaltenen Objekts.
Matrix
  
Verkettet eine Matrix mit der aktuellen Matrix und kombiniert auf diese Weise die geometrischen Effekte der beiden Matrizen.
Matrix
  
createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Enthält Parameter zur Skalierung, Drehung und Versetzung.
Matrix
  
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Erstellt den speziellen Matrixstil, der durch die beginGradientFill()- und lineGradientStyle()-Methoden der Graphics-Klasse vorgegeben wird.
Matrix
  
Diese Methode gibt für einen Punkt im noch nicht transformierten Koordinatenraum die entsprechenden Punktkoordinaten nach der Transformation zurück.
Matrix
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
  
Setzt jede Matrixeigenschaft auf einen Wert, der zu einer Nulltransformation führt.
Matrix
  
Führt die umgekehrte Transformation der ursprünglichen Matrix durch.
Matrix
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
  
rotate(angle:Number):void
Wendet eine Drehung auf das Matrix-Objekt an.
Matrix
  
Wendet eine Skalierung auf die Matrix an.
Matrix
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
  
Gibt einen Textwert zurück, der eine Eigenschaftenliste des Matrix-Objekts enthält.
Matrix
  
Gibt das Ergebnis der geometrischen Transformation, die durch das Matrix-Objekt dargestellt wird, für den angegebenen Punkt zurück.
Matrix
  
Verschiebt die Matrix entsprechend den Angaben durch die Parameter "dx" und "dy" entlang der x- und y-Achse.
Matrix
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Eigenschaftsdetail
aEigenschaft
public var a:Number

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Der Wert in der ersten Zeile und ersten Spalte des Matrix-Objekts, der sich beim Skalieren oder Drehen eines Bilds auf die Positionierung von Pixeln entlang der x-Achse auswirkt.


Beispiel
Im folgenden Beispiel wird das Matrix-Objekt myMatrix erstellt und der Wert der Eigenschaft a festgelegt.
     import flash.geom.Matrix;
     
     var myMatrix:Matrix = new Matrix();
     trace(myMatrix.a);  // 1
     
     myMatrix.a = 2;
     trace(myMatrix.a);  // 2
     
bEigenschaft 
public var b:Number

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Der Wert in der ersten Zeile und zweiten Spalte des Matrix-Objekts, der sich beim Drehen oder Skalieren eines Bilds auf die Positionierung von Pixeln entlang der y-Achse auswirkt.


Beispiel
Im folgenden Beispiel wird das Matrix-Objekt myMatrix erstellt und der Wert der Eigenschaft b festgelegt.
     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
     
cEigenschaft 
public var c:Number

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Der Wert in der zweiten Zeile und ersten Spalte des Matrix-Objekts, der sich beim Drehen oder Skalieren eines Bilds auf die Positionierung von Pixeln entlang der x-Achse auswirkt.


Beispiel
Im folgenden Beispiel wird das Matrix-Objekt myMatrix erstellt und der Wert der Eigenschaft c festgelegt.
     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
     
dEigenschaft 
public var d:Number

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Der Wert in der zweiten Zeile und zweiten Spalte des Matrix-Objekts, der sich beim Skalieren oder Drehen eines Bilds auf die Positionierung von Pixeln entlang der y-Achse auswirkt.


Beispiel
Im folgenden Beispiel wird das Matrix-Objekt myMatrix erstellt und der Wert der Eigenschaft d festgelegt.
     import flash.geom.Matrix;
     
     var myMatrix:Matrix = new Matrix();
     trace(myMatrix.d);  // 1
     
     myMatrix.d = 2;
     trace(myMatrix.d);  // 2
     
txEigenschaft 
public var tx:Number

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Die Strecke, um die jeder Punkt entlang der x-Achse geschoben werden soll. Dies gibt den Wert in der ersten Zeile und dritten Spalte des Matrix-Objekts an.


Beispiel
Im folgenden Beispiel wird das Matrix-Objekt myMatrix erstellt und der Wert der Eigenschaft tx wird festgelegt.
 
     import flash.geom.Matrix;
     
     var myMatrix:Matrix = new Matrix();
     trace(myMatrix.tx);  // 0
     
     myMatrix.tx = 50;  // 50
     trace(myMatrix.tx);
     
tyEigenschaft 
public var ty:Number

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Der Abstand, um den jeder Punkt entlang der y-Achse verschoben werden soll. Dies repräsentiert den Wert in der zweiten Zeile und dritten Spalte des neuen Matrix-Objekts.


Beispiel
Im folgenden Beispiel wird das Matrix-Objekt myMatrix erstellt und der Wert der Eigenschaft ty festgelegt.
   
     import flash.geom.Matrix;
     
     var myMatrix:Matrix = new Matrix();
     trace(myMatrix.ty);  // 0
     
     myMatrix.ty = 50;
     trace(myMatrix.ty);  // 50
     
Konstruktordetail
Matrix()Konstruktor
public function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt ein neues Matrix-Objekt mit den angegebenen Parametern. In der Matrixschreibweise sind die Eigenschaften wie folgt angeordnet:

Wenn Sie für den new Matrix()-Konstruktor keine Parameter angeben, wird eine Identitätsmatrix mit den folgenden Werten erstellt:

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

In der Matrixschreibweise sieht die Identitätsmatrix wie folgt aus:

Parameter
a:Number (default = 1) — Der Wert in der ersten Zeile und ersten Spalte des neuen Matrix-Objekts.
 
b:Number (default = 0) — Der Wert in der ersten Zeile und zweiten Spalte des neuen Matrix-Objekts.
 
c:Number (default = 0) — Der Wert in der zweiten Zeile und ersten Spalte des neuen Matrix-Objekts.
 
d:Number (default = 1) — Der Wert in der zweiten Zeile und zweiten Spalte des neuen Matrix-Objekts.
 
tx:Number (default = 0) — Der Wert in der ersten Zeile und dritten Spalte des neuen Matrix-Objekts.
 
ty:Number (default = 0) — Der Wert in der zweiten Zeile und dritten Spalte des neuen Matrix-Objekts.

Beispiel
Im folgenden Beispiel wird matrix_1 erstellt, indem keine Parameter an den Matrix()-Konstruktor gesendet werden, und matrix_2, indem Parameter gesendet werden. Beachten Sie, dass matrix_1, die ohne Parameter erstellt wurde, eine Identitätsmatrix mit den Werten a=1, b=0, c=0, d=1, tx=0, ty=0 ergibt.
    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)
    
Methodendetail
clone()Methode
public function clone():Matrix

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt ein neues Matrix-Objekt zurück, das ein Klon dieser Matrix ist, mit einer exakten Kopie des enthaltenen Objekts.

Rückgabewerte
Matrix — Ein Matrix-Objekt.
concat()Methode 
public function concat(m:Matrix):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Verkettet eine Matrix mit der aktuellen Matrix und kombiniert auf diese Weise die geometrischen Effekte der beiden Matrizen. In mathematischer Hinsicht entspricht die Verkettung zweier Matrizen der Kombination der beiden Matrizen durch eine Matrixmultiplikation.

Wenn die Matrix m1 beispielsweise ein Objekt um einen Faktor von vier skaliert und Matrix m2 ein Objekt um einen Bogenmaßwert von 1,5707963267949 dreht (Math.PI/2), dann wandelt m1.concat(m2) m1 in eine Matrix um, die ein Objekt um den Faktor vier skaliert und es um einen Bogenmaßwert von Math.PI/2 dreht.

Diese Methode ersetzt die Quellmatrix durch die verkettete Matrix. Wenn Sie zwei Matrizen ohne eine Änderung der beiden Quellmatrizen verketten möchten, kopieren Sie zuerst die Quellmatrix mit der Methode clone() (siehe dazu den Abschnitt mit Beispielen für Klassen).

Parameter

m:Matrix — Die mit der Quellmatrix zu verkettende Matrix.

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

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Enthält Parameter zur Skalierung, Drehung und Versetzung. Wenn diese Methode auf eine Matrix angewendet wird, legt sie die Werte der Matrix entsprechend diesen Parametern fest.

Mit der Methode createBox() können Sie die gleiche Matrix erstellen wie beim Anwenden der Methoden identity(), rotate(), scale() und translate() nacheinander. Beispielsweise ist mat1.createBox(2,2,Math.PI/4, 100, 100) gleichwertig mit den folgenden Ausdrücken:

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

Parameter

scaleX:Number — Der Faktor für die horizontale Skalierung.
 
scaleY:Number — Der Faktor für die vertikale Skalierung.
 
rotation:Number (default = 0) — Der Drehungswert im Bogenmaß.
 
tx:Number (default = 0) — Die Anzahl der entlang der x-Achse nach rechts umzusetzenden (zu verschiebenden) Pixel.
 
ty:Number (default = 0) — Die Anzahl der entlang der y-Achse nach unten umzusetzenden (zu verschiebenden) Pixel.

Siehe auch


Beispiel

Im folgenden Beispiel werden die x-Skalierung, y-Skalierung, Drehung, x-Position und y-Position von myMatrix gesetzt, indem die Methode createBox() aufgerufen wird.

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=100, ty=200)
             
             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()Methode 
public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt den speziellen Matrixstil, der durch die Methoden beginGradientFill() und lineGradientStyle() der Graphics-Klasse vorgegeben wird. Breite und Höhe werden auf ein scaleX/scaleY-Paar skaliert und die tx/ty-Werte werden um die halbe Breite und Höhe abgesetzt.

Dies wird an einem Beispiel für einen Farbverlauf mit den folgenden Merkmalen verdeutlicht:

In den folgenden Abbildungen sind Farbverläufe, bei denen die Matrix mit der createGradientBox()-Methode definiert wurde, mit verschiedenen Parametereinstellungen dargestellt:

Einstellungen für createGradientBox()Resultierender Farbverlauf
width = 25;
     height = 25; 
     rotation = 0; 
     tx = 0; 
     ty = 0;
width = 25; 
     height = 25; 
     rotation = 0; 
     tx = 25; 
     ty = 0;
width = 50; 
     height = 50; 
     rotation = 0; 
     tx = 0; 
     ty = 0;
width = 50;
     height = 50; 
     rotation = Math.PI / 4; // 45°
     tx = 0; 
     ty = 0;

Parameter

width:Number — Die Breite des Farbverlaufsfelds.
 
height:Number — Die Höhe des Farbverlaufsfelds.
 
rotation:Number (default = 0) — Der Drehungswert im Bogenmaß.
 
tx:Number (default = 0) — Der entlang der x-Achse nach rechts zu verschiebende Abstand in Pixel. Dieser Wert wird um die Hälfte des width-Parameters versetzt.
 
ty:Number (default = 0) — Der entlang der y-Achse nach unten zu verschiebende Abstand in Pixel. Dieser Wert wird um die Hälfte des height-Parameters versetzt.

Siehe auch


Beispiel

Im folgenden Beispiel werden die x-Skalierung, y-Skalierung, Drehung, x-Position und y-Position von myMatrix gesetzt, indem die Methode createBox() aufgerufen wird.

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()Methode 
public function deltaTransformPoint(point:Point):Point

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Diese Methode gibt für einen Punkt im noch nicht transformierten Koordinatenraum die entsprechenden Punktkoordinaten nach der Transformation zurück. Im Gegensatz zur Standardtransformation, die mithilfe der Methode transformPoint() angewendet wird, werden die Umsetzungsparameter tx und ty bei einer Transformation durch die Methode deltaTransformPoint() nicht berücksichtigt.

Parameter

point:Point — Der Punkt, für den das Ergebnis der Matrixtransformation abgerufen werden soll.

Rückgabewerte
Point — Der sich aus der Matrixtransformation ergebende Punkt.
identity()Methode 
public function identity():void

Player-Version : Flash Player 9

Setzt jede Matrixeigenschaft auf einen Wert, der zu einer Nulltransformation führt. Ein durch Anwenden einer Identitätsmatrix transformiertes Objekt entspricht dem Original.

Nach Aufruf der Methode identity() hat die resultierende Matrix die folgenden Eigenschaften: a =1, b =0, c =0, d =1, tx =0, ty =0.

In der Matrixschreibweise sieht die Identitätsmatrix wie folgt aus:

invert()Methode 
public function invert():void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Führt die umgekehrte Transformation der ursprünglichen Matrix durch. Sie können eine umgekehrte Matrix auf ein Objekt anwenden, um die bei der Anwendung der ursprünglichen Matrix vorgenommene Transformation rückgängig zu machen.


Beispiel

Im folgenden Beispiel wird halfScaleMatrix erstellt, und zwar durch den Aufruf der Methodeinvert() aus doubleScaleMatrix. Anschließend wird demonstriert, dass die beiden Matrizen Umkehrungen voneinander sind, d. h., dass sie verwendet werden können, um Transformationen der jeweils anderen Matrix rückgängig zu machen, und zwar durch die Erstellung von originalAndInverseMatrix, die identisch ist mit 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()Methode 
public function rotate(angle:Number):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wendet eine Drehung auf das Matrix-Objekt an.

Durch die Methode rotate() werden die a-, b-, c- und d-Eigenschaften des Matrix-Objekts geändert. In der Matrixschreibweise entspricht dies der Verkettung der aktuellen Matrix mit der folgenden Matrix:

Parameter

angle:Number — Der Drehwinkel im Bogenmaß.

Siehe auch

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

Player-Version : Flash Player 9

Wendet eine Skalierung auf die Matrix an. Die x-Achse wird mit sx und die y-Achse mit sx multipliziert.

Die Methode scale() ändert die a- und d-Eigenschaften des Matrix-Objekts. In der Matrixschreibweise entspricht dies der Verkettung der aktuellen Matrix mit der folgenden Matrix:

Parameter

sx:Number — Ein Multiplikator zur Skalierung des Objekts entlang der x-Achse.
 
sy:Number — Ein Multiplikator zur Skalierung des Objekts entlang der y-Achse.

Siehe auch

toString()Methode 
public function toString():String

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt einen Textwert zurück, der eine Eigenschaftenliste des Matrix-Objekts enthält.

Rückgabewerte
String — Ein String mit den Werten für die folgenden Eigenschaften des Matrix-Objekts: a, b, c, d, tx und ty.
transformPoint()Methode 
public function transformPoint(point:Point):Point

Player-Version : Flash Player 9

Gibt das Ergebnis der geometrischen Transformation, die durch das Matrix-Objekt dargestellt wird, für den angegebenen Punkt zurück.

Parameter

point:Point — Der Punkt, für den das Ergebnis der Matrixtransformation abgerufen werden soll.

Rückgabewerte
Point — Der sich aus der Matrixtransformation ergebende Punkt.
translate()Methode 
public function translate(dx:Number, dy:Number):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Verschiebt die Matrix entsprechend den Angaben durch die Parameter dx und dy entlang der x- und y-Achse.

Parameter

dx:Number — Die Verschiebung entlang der x-Achse nach rechts in Pixel.
 
dy:Number — Die Verschiebung entlang der y-Achse nach unten in Pixel.

Siehe auch

Beispiele Verwendung von Beispielen
MatrixExample.as

Im folgenden Beispiel wird mithilfe der MatrixExample-Klasse demonstriert, wie ein großes Quadrat mit Farbverlaufsfüllung erstellt werden kann. Dies wird in den folgenden Schritten erreicht:
  1. Die Anwendung erstellt ein neues Matrix-Objekt (myMatrix) und mithilfe der trace()-Methode werden die Standardeigenschaftswerte für das myMatrix-Objekt ausgegeben.
  2. Die Anwendung ruft createGradientBox() auf, wobei die Parameter width und height auf 200 Pixel gesetzt sind. Es wurde keine Drehung eingestellt, und der Abstand für die Verschiebung entlang der x- und y-Achse ist auf 50 Pixel gesetzt.
  3. Die Anwendung druckt das myMatrix-Objekt erneut, um die Änderungen durch den Aufruf von createGradientBox() zu verdeutlichen.
  4. Von der Anwendung werden drei Variablen eingerichtet, mit denen das Farbverlaufsfeld gesteuert wird:
    • colors: Setzt die Farben des Farbverlaufs auf einen Bereich zwischen reinem Rot und reinem Blau.
    • alphas: Setzt die Deckkraft auf undurchsichtig.
    • ratios: Legt fest, dass beide Farben gleichmäßig verteilt sind.
  5. Die Anwendung ruft die Graphics-Methode beginGradientFill() auf, die sich auf das myMatrix-Objekt auswirkt. Außerdem ruft sie die lineTo()-Methode auf, und daraufhin wird das Feld mit Farbverlaufsfüllung erstellt.
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 = [100, 100];
            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);
        }
    }
}




 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/geom/Matrix.html