ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.geom 

Matrix  - AS3

Paketflash.geom
Klassepublic class Matrix
VererbungMatrix Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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:

  • die draw()-Methode eines BitmapData-Objekts
  • die Methoden beginBitmapFill(), beginGradientFill() und lineGradientStyle() eines Graphics-Objekts

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

Eigenschaften der Matrix-Klasse in Matrixschweibweise

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:

Bei den Eigenschaften der Matrix-Klasse in Matrixschreibweise werden für u, v und w angenommene Werte angezeigt.

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.

TransformationMethodeMatrixwerteAnzeigeergebnisBeschreibung
Versetzen (Verschieben) translate(tx, ty) Matrixschreibweise von translate-Methodenparametern Darstellung von Auswirkungen der translate-Methode Verschiebt das Bild um tx Pixel nach rechts und ty Pixel nach unten.
Skalieren scale(sx, sy) Matrixschreibweise von scale-Methodenparametern Darstellung von Auswirkungen der scale-Methode Ändert die Bildgröße, wobei die Position jedes Pixels mit sx auf der x-Achse und mit sy auf der y-Achse multipliziert wird.
Drehen rotate(q) Matrixschreibweise von rotate-Methodeneigenschaften Darstellung von Auswirkungen der rotate-Methode 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. Matrixschreibweise von Eigenschaften der skew-Funktion Darstellung von Auswirkungen der skew-Funktion 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

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
  a : Number
Der Wert, der sich auf die Positionierung der Pixel entlang der x-Achse auswirkt, wenn ein Bild skaliert oder gedreht wird.
Matrix
  b : Number
Der Wert, der sich auf die Positionierung der Pixel entlang der y-Achse auswirkt, wenn ein Bild gedreht oder geneigt wird.
Matrix
  c : Number
Der Wert, der sich auf die Positionierung der Pixel entlang der x-Achse auswirkt, wenn ein Bild gedreht oder geneigt wird.
Matrix
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  d : Number
Der Wert, der sich auf die Positionierung der Pixel entlang der y-Achse auswirkt, wenn ein Bild skaliert oder gedreht wird.
Matrix
  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
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Kopiert ein Vector3D-Objekt in eine bestimmte Spalte des aufrufenden Matrix3D-Objekts.
Matrix
  
copyColumnTo(column:uint, vector3D:Vector3D):void
Kopiert die angegebene Spalte des aufrufenden Matrix-Objekts in das Vector3D-Objekt.
Matrix
  
copyFrom(sourceMatrix:Matrix):void
Kopiert alle Matrixdaten aus dem Point-Quellobjekt in das aufrufende Matrix-Objekt.
Matrix
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Kopiert ein Vector3D-Objekt in eine bestimmte Zeile des aufrufenden Matrix-Objekts.
Matrix
  
copyRowTo(row:uint, vector3D:Vector3D):void
Kopiert die angegebene Zeile des aufrufenden Matrix-Objekts in das Vector3D-Objekt.
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
  
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
  
setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void
Legt die Mitglieder des Matrix-Objekts auf die angegebenen Werte fest
Matrix
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
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
Eigenschaftendetails

a

Eigenschaft
public var a:Number

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Der Wert, der sich auf die Positionierung der Pixel entlang der x-Achse auswirkt, wenn ein Bild skaliert oder gedreht wird.


Beispiel  ( Verwendung dieses Beispiels )
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

b

Eigenschaft 
public var b:Number

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Der Wert, der sich auf die Positionierung der Pixel entlang der y-Achse auswirkt, wenn ein Bild gedreht oder geneigt wird.


Beispiel  ( Verwendung dieses Beispiels )
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

c

Eigenschaft 
public var c:Number

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Der Wert, der sich auf die Positionierung der Pixel entlang der x-Achse auswirkt, wenn ein Bild gedreht oder geneigt wird.


Beispiel  ( Verwendung dieses Beispiels )
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

d

Eigenschaft 
public var d:Number

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Der Wert, der sich auf die Positionierung der Pixel entlang der y-Achse auswirkt, wenn ein Bild skaliert oder gedreht wird.


Beispiel  ( Verwendung dieses Beispiels )
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

tx

Eigenschaft 
public var tx:Number

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die Strecke, um die jeder Punkt entlang der x-Achse geschoben werden soll.


Beispiel  ( Verwendung dieses Beispiels )
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);

ty

Eigenschaft 
public var ty:Number

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Der Abstand, um den jeder Punkt entlang der y-Achse verschoben werden soll.


Beispiel  ( Verwendung dieses Beispiels )
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
Konstruktordetails

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
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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

Bei den Eigenschaften der Matrix-Klasse in Matrixschreibweise werden für u, v und w angenommene Werte angezeigt.

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

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

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

Eigenschaften der Matrix-Klasse in Matrixschweibweise

Parameter
a:Number (default = 1) — Der Wert, der sich auf die Positionierung der Pixel entlang der x-Achse auswirkt, wenn ein Bild skaliert oder gedreht wird.
 
b:Number (default = 0) — Der Wert, der sich auf die Positionierung der Pixel entlang der y-Achse auswirkt, wenn ein Bild gedreht oder geneigt wird.
 
c:Number (default = 0) — Der Wert, der sich auf die Positionierung der Pixel entlang der x-Achse auswirkt, wenn ein Bild gedreht oder geneigt wird.
 
d:Number (default = 1) — Der Wert, der sich auf die Positionierung der Pixel entlang der y-Achse auswirkt, wenn ein Bild skaliert oder gedreht wird.
 
tx:Number (default = 0) — Die Strecke, um die jeder Punkt entlang der x-Achse geschoben werden soll.
 
ty:Number (default = 0) — Der Abstand, um den jeder Punkt entlang der y-Achse verschoben werden soll.

Beispiel  ( Verwendung dieses Beispiels )

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)
Methodendetails

clone

()Methode
public function clone():Matrix

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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.

copyColumnFrom

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert ein Vector3D-Objekt in eine bestimmte Spalte des aufrufenden Matrix3D-Objekts.

Parameter

column:uint — Die Spalte, aus der die Daten kopiert werden.
 
vector3D:Vector3D — Das Vector3D-Objekt, aus dem die Daten kopiert werden.

copyColumnTo

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert die angegebene Spalte des aufrufenden Matrix-Objekts in das Vector3D-Objekt. Das w-Element des Vector3D-Objekts wird nicht geändert.

Parameter

column:uint — Die Spalte, aus der die Daten kopiert werden.
 
vector3D:Vector3D — Das Vector3D-Objekt, aus dem die Daten kopiert werden.

copyFrom

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert alle Matrixdaten aus dem Point-Quellobjekt in das aufrufende Matrix-Objekt.

Parameter

sourceMatrix:Matrix — Das Matrix-Objekt, aus dem die Daten kopiert werden.

copyRowFrom

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert ein Vector3D-Objekt in eine bestimmte Zeile des aufrufenden Matrix-Objekts.

Parameter

row:uint — Die Zeile, aus der die Daten kopiert werden.
 
vector3D:Vector3D — Das Vector3D-Objekt, aus dem die Daten kopiert werden.

copyRowTo

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert die angegebene Zeile des aufrufenden Matrix-Objekts in das Vector3D-Objekt. Das w-Element des Vector3D-Objekts wird nicht geändert.

Parameter

row:uint — Die Zeile, aus der die Daten kopiert werden.
 
vector3D:Vector3D — Das Vector3D-Objekt, aus dem die Daten kopiert werden.

createBox

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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. So hat beispielsweise mat1.createBox(2,2,Math.PI/4, 100, 100) denselben Effekt wie:

     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.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

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=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

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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:

  • GradientType.LINEAR
  • Zwei Farben, Grün und Blau, bei denen das ratios-Array auf [0, 255] gesetzt ist.
  • SpreadMethod.PAD
  • InterpolationMethod.LINEAR_RGB

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;
daraus resultierender linearer Verlauf
width = 25; 
     height = 25; 
     rotation = 0; 
     tx = 25; 
     ty = 0;
daraus resultierender linearer Verlauf
width = 50; 
     height = 50; 
     rotation = 0; 
     tx = 0; 
     ty = 0;
daraus resultierender linearer Verlauf
width = 50;
     height = 50; 
     rotation = Math.PI / 4; // 45 degrees
     tx = 0; 
     ty = 0;
daraus resultierender linearer Verlauf

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.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

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
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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:

Eigenschaften der Matrix-Klasse in Matrixschweibweise

invert

()Methode 
public function invert():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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  ( Verwendung dieses Beispiels )

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
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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:

Matrixschreibweise von scale-Methodenparametern

Parameter

angle:Number — Der Drehwinkel im Bogenmaß.

scale

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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:

Matrixschreibweise von scale-Methodenparametern

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.

setTo

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Legt die Mitglieder des Matrix-Objekts auf die angegebenen Werte fest

Parameter

aa:Number — die Werte, auf die die Matrix gesetzt wird.
 
ba:Number
 
ca:Number
 
da:Number
 
txa:Number
 
tya:Number

toString

()Methode 
public function toString():String

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

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.

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 = [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 ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.