Paket | flash.geom |
Klasse | public class Matrix |
Vererbung | Matrix Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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()
undlineGradientStyle()
eines Graphics-Objekts
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.
Transformation | Methode | Matrixwerte | Anzeigeergebnis | Beschreibung |
---|---|---|---|---|
Versetzen (Verschieben) |
translate(tx, ty)
| Verschiebt das Bild um tx Pixel nach rechts und ty Pixel nach unten. | ||
Skalieren |
scale(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. | ||
Drehen |
rotate(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.
Verwandte API-Elemente
flash.geom.Transform
flash.display.BitmapData.draw()
flash.display.Graphics.beginBitmapFill()
flash.display.Graphics.beginGradientFill()
flash.display.Graphics.lineGradientStyle()
Eigenschaft | Definiert 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 | ||
constructor : 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 |
Methode | Definiert von | ||
---|---|---|---|
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 | ||
Kopiert ein Vector3D-Objekt in eine bestimmte Spalte des aufrufenden Matrix3D-Objekts. | Matrix | ||
Kopiert die angegebene Spalte des aufrufenden Matrix-Objekts in das Vector3D-Objekt. | Matrix | ||
Kopiert alle Matrixdaten aus dem Point-Quellobjekt in das aufrufende Matrix-Objekt. | Matrix | ||
Kopiert ein Vector3D-Objekt in eine bestimmte Zeile des aufrufenden Matrix-Objekts. | Matrix | ||
Kopiert die angegebene Zeile des aufrufenden Matrix-Objekts in das Vector3D-Objekt. | Matrix | ||
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 | ||
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 | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
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 | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Legt die Mitglieder des Matrix-Objekts auf die angegebenen Werte fest
| Matrix | ||
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 | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
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 )
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 )
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 )
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 )
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 )
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 )
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
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:
Wenn Sie für den new Matrix()
-Konstruktor keine Parameter angeben, wird eine Identitätsmatrix mit den folgenden Werten erstellt:
In der Matrixschreibweise sieht die Identitätsmatrix wie folgt aus:
Parametera: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 )
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)
clone | () | Methode |
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 )
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; | |
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 degrees 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.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
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.
|
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:
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 )
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:
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:
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ückgabewerteString — 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.
|
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
-Klasse demonstriert, wie ein großes Quadrat mit Farbverlaufsfüllung erstellt werden kann. Dies wird in den folgenden Schritten erreicht:
- Die Anwendung erstellt ein neues Matrix-Objekt (
myMatrix
) und mithilfe dertrace()
-Methode werden die Standardeigenschaftswerte für dasmyMatrix
-Objekt ausgegeben. - Die Anwendung ruft
createGradientBox()
auf, wobei die Parameterwidth
undheight
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. - Die Anwendung druckt das
myMatrix
-Objekt erneut, um die Änderungen durch den Aufruf voncreateGradientBox()
zu verdeutlichen. - 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.
- Die Anwendung ruft die Graphics-Methode
beginGradientFill()
auf, die sich auf dasmyMatrix
-Objekt auswirkt. Außerdem ruft sie dielineTo()
-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); } } }
Tue Jun 12 2018, 10:04 AM Z