Package | flash.geom |
Classe | public class Matrix |
Héritage | Matrix Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
matrix
d’un objet Transform que vous appliquez ensuite comme propriété transform
de l’objet d’affichage. Ces fonctions de transformation incluent la translation (repositionnement de x et y), la rotation, le redimensionnement et l’inclinaison.
Associés, ces types de transformations sont connus sous le nom de transformations affines. Les transformations affines préservent la rectitude des lignes au cours de la transformation, de sorte que les lignes parallèles restent parallèles.
Pour appliquer une matrice de transformation à un objet d’affichage, vous créez un objet Transform, réglez sa propriété matrix
sur la matrice de transformation, puis réglez la propriété transform
de l’objet d’affichage sur l’objet Transform. Les objets Matrix peuvent également être utilisés comme paramètres de certaines méthodes, indiquées ci-dessous :
- la méthode
draw()
d’un objet BitmapData ; - les méthodes
beginBitmapFill()
,beginGradientFill()
oulineGradientStyle()
d’un objet Graphics.
Un objet de matrice de transformation est considéré comme étant une matrice 3 x 3 comprenant le contenu suivant :
Dans le cas des matrices de transformation classiques, les propriétés u
, v
et w
sont dotées de fonctionnalités supplémentaires. La classe Matrix fonctionne uniquement dans un espace bidimensionnel ; ainsi, elle suppose toujours que les valeurs des propriétés u
et v
sont 0,0, et que la valeur de la propriété w
est 1,0. Les valeurs réelles de la matrice sont les suivantes :
Vous pouvez obtenir et définir les valeurs des six autres propriétés d’un objet Matrix : a
, b
, c
, d
, tx
et ty
.
La classe Matrix prend en charge les quatre principaux types de transformations : translation, redimensionnement, rotation et inclinaison. Vous pouvez définir trois de ces transformations à l’aide de méthodes spécialisées, tel que décrit dans le tableau ci-dessous.
Transformation | Méthode | Valeurs de matrice | Résultat affiché | Description |
---|---|---|---|---|
Translation (déplacement) |
translate(tx, ty)
| Déplace les pixels tx de l’image vers la droite, et les pixels ty vers le bas. | ||
Redimensionnement |
scale(sx, sy)
| Redimensionne l’image en multipliant l’emplacement de chaque pixel par sx sur l’axe x et par sy sur l’axe y. | ||
Rotation |
rotate(q)
| Fait pivoter l’image selon un angle q , mesuré en radians. | ||
Inclinaison ou cisaillement | Aucun ; il est nécessaire de définir les propriétés b et c . | Fait glisser l’image progressivement dans une direction parallèle à l’axe x ou y. La propriété b de l’objet Matrix représente la tangente de l’angle d’inclinaison sur l’axe y, sa propriété c la tangente de l’angle d’inclinaison sur l’axe x. |
Chaque fonction de transformation modifie les propriétés de matrice actuelles, ce qui vous permet d’associer plusieurs transformations. Pour ce faire, il vous suffit d’appeler plusieurs fonctions de transformation avant d’appliquer la matrice à son objet d’affichage cible (à l’aide de la propriété transform
de celui-ci).
Utilisez le constructeur new Matrix()
pour créer un objet Matrix afin de pouvoir appeler les méthodes connexes.
Informations complémentaires
Eléments de l’API associés
flash.geom.Transform
flash.display.BitmapData.draw()
flash.display.Graphics.beginBitmapFill()
flash.display.Graphics.beginGradientFill()
flash.display.Graphics.lineGradientStyle()
Propriété | Défini par | ||
---|---|---|---|
a : Number
Valeur qui affecte le positionnement des pixels sur l’axe x lors du redimensionnement ou de la rotation d’une image. | Matrix | ||
b : Number
Valeur qui affecte le positionnement des pixels sur l’axe y lors de la rotation ou de l’inclinaison d’une image. | Matrix | ||
c : Number
Valeur qui affecte le positionnement des pixels sur l’axe x lors de la rotation ou de l’inclinaison d’une image. | Matrix | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
d : Number
Valeur qui affecte le positionnement des pixels sur l’axe y lors du redimensionnement ou de la rotation d’une image. | Matrix | ||
tx : Number
Distance de translation de chaque point sur l’axe x. | Matrix | ||
ty : Number
Distance de translation de chaque point sur l’axe y. | Matrix |
Méthode | Défini par | ||
---|---|---|---|
Crée un objet Matrix avec les paramètres spécifiés. | Matrix | ||
Renvoie un nouvel objet Matrix, clone de cette matrice, avec une copie exacte de l’objet contenu. | Matrix | ||
Concatène une matrice et la matrice actuelle, ce qui a pour effet de combiner les effets géométriques des deux matrices. | Matrix | ||
Copie un objet Vector3D dans la colonne spécifique de l’objet Matrix3D appelant. | Matrix | ||
Copie la colonne correspondante de l’objet Matrix appelant dans l’objet Vector3D. | Matrix | ||
Copie toutes les données de matrice de l’objet Point source dans l’objet Matrix appelant. | Matrix | ||
Copie un objet Vector3D dans la ligne correspondante de l’objet Matrix appelant. | Matrix | ||
Copie la ligne correspondante de l’objet Matrix appelant dans l’objet Vector3D. | Matrix | ||
Inclut les paramètres de mise à l’échelle, de rotation et de translation. | Matrix | ||
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Crée le style spécifique de matrice attendu par les méthodes beginGradientFill() et lineGradientStyle() de la classe Graphics. | Matrix | ||
Etant donné un point dans l’espace de coordonnées de prétransformation, cette méthode renvoie les coordonnées de ce point après la transformation. | Matrix | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Règle chaque propriété d’une matrice sur une valeur qui entraîne une transformation nulle. | Matrix | ||
Effectue la transformation opposée de la matrice d’origine. | Matrix | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Applique une transformation de rotation à l’objet Matrix. | Matrix | ||
Applique une transformation de redimensionnement à la matrice. | Matrix | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Définit les membres de la matrice sur les valeurs spécifiées
| Matrix | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie une valeur de texte donnant la liste des propriétés de l’objet Matrix. | Matrix | ||
Renvoie le résultat de l’application de la transformation géométrique représentée par l’objet Matrix au point spécifié. | Matrix | ||
Translation de la matrice sur les axes x et y en fonction des paramètres dx et dy. | Matrix | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
a | propriété |
public var a:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Valeur qui affecte le positionnement des pixels sur l’axe x lors du redimensionnement ou de la rotation d’une image.
Exemple ( Comment utiliser cet exemple )
myMatrix
et définit sa valeur a
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.a); // 1 myMatrix.a = 2; trace(myMatrix.a); // 2
b | propriété |
public var b:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Valeur qui affecte le positionnement des pixels sur l’axe y lors de la rotation ou de l’inclinaison d’une image.
Exemple ( Comment utiliser cet exemple )
myMatrix
et définit sa valeur b
.
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 | propriété |
public var c:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Valeur qui affecte le positionnement des pixels sur l’axe x lors de la rotation ou de l’inclinaison d’une image.
Exemple ( Comment utiliser cet exemple )
myMatrix
et définit sa valeur c
.
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 | propriété |
public var d:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Valeur qui affecte le positionnement des pixels sur l’axe y lors du redimensionnement ou de la rotation d’une image.
Exemple ( Comment utiliser cet exemple )
myMatrix
et définit sa valeur d
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.d); // 1 myMatrix.d = 2; trace(myMatrix.d); // 2
tx | propriété |
public var tx:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distance de translation de chaque point sur l’axe x.
Exemple ( Comment utiliser cet exemple )
myMatrix
et définit sa valeur tx
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.tx); // 0 myMatrix.tx = 50; // 50 trace(myMatrix.tx);
ty | propriété |
public var ty:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distance de translation de chaque point sur l’axe y.
Exemple ( Comment utiliser cet exemple )
myMatrix
et définit sa valeur ty
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.ty); // 0 myMatrix.ty = 50; trace(myMatrix.ty); // 50
Matrix | () | Constructeur |
public function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crée un objet Matrix avec les paramètres spécifiés. Dans la notation des matrices, les propriétés sont organisées comme suit :
Si vous ne transmettez aucun paramètre au constructeur new Matrix()
, celui-ci crée une matrice d’identité dotée des valeurs suivantes :
Dans la notation des matrices, la matrice d’identité a l’aspect suivant :
Paramètresa:Number (default = 1 ) — Valeur qui affecte le positionnement des pixels sur l’axe x lors du redimensionnement ou de la rotation d’une image.
| |
b:Number (default = 0 ) — Valeur qui affecte le positionnement des pixels sur l’axe y lors de la rotation ou de l’inclinaison d’une image.
| |
c:Number (default = 0 ) — Valeur qui affecte le positionnement des pixels sur l’axe x lors de la rotation ou de l’inclinaison d’une image.
| |
d:Number (default = 1 ) — Valeur qui affecte le positionnement des pixels sur l’axe y lors du redimensionnement ou de la rotation d’une image.
| |
tx:Number (default = 0 ) — Distance de translation de chaque point sur l’axe x.
| |
ty:Number (default = 0 ) — Distance de translation de chaque point sur l’axe y.
|
Exemple ( Comment utiliser cet exemple )
matrix_1
sans transmettre de paramètre au constructeur Matrix()
et matrix_2
en lui transmettant des paramètres. Remarquez que matrix_1
, créé sans paramètres, forme une matrice d’identité dotée des valeurs 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)
clone | () | méthode |
concat | () | méthode |
public function concat(m:Matrix):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Concatène une matrice et la matrice actuelle, ce qui a pour effet de combiner les effets géométriques des deux matrices. En termes mathématiques, la concaténation de deux matrices revient à les combiner par l’intermédiaire de la multiplication de matrices.
Par exemple, si la matrice m1
redimensionne un objet en le multipliant par 4 et si la matrice m2
fait pivoter un objet de 1,5707963267949 radians (Math.PI/2
), alors m1.concat(m2)
transforme m1
en une matrice qui redimensionne un objet en le multipliant par 4 et le fait pivoter de Math.PI/2
radians.
Cette méthode permet de remplacer la matrice source par la matrice concaténée. Si vous souhaitez concaténer deux matrices sans modifier les deux matrices source, copiez d’abord la matrice source via la méthode clone()
, comme indiqué dans la section relative aux exemples de la classe.
Paramètres
m:Matrix — Matrice à concaténer avec la matrice source.
|
copyColumnFrom | () | méthode |
public function copyColumnFrom(column:uint, vector3D:Vector3D):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copie un objet Vector3D dans la colonne spécifique de l’objet Matrix3D appelant.
Paramètres
column:uint — Colonne à partir de laquelle de copier les données.
| |
vector3D:Vector3D — Objet Vector3D à partir duquel copier les données.
|
copyColumnTo | () | méthode |
public function copyColumnTo(column:uint, vector3D:Vector3D):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copie la colonne correspondante de l’objet Matrix appelant dans l’objet Vector3D. L’élément w de l’objet Vector3D ne sera pas modifié.
Paramètres
column:uint — Colonne à partir de laquelle de copier les données.
| |
vector3D:Vector3D — Objet Vector3D à partir duquel copier les données.
|
copyFrom | () | méthode |
public function copyFrom(sourceMatrix:Matrix):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copie toutes les données de matrice de l’objet Point source dans l’objet Matrix appelant.
Paramètres
sourceMatrix:Matrix — Objet Matrix à partir duquel copier les données.
|
copyRowFrom | () | méthode |
public function copyRowFrom(row:uint, vector3D:Vector3D):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copie un objet Vector3D dans la ligne correspondante de l’objet Matrix appelant.
Paramètres
row:uint — Ligne à partir de laquelle copier les données.
| |
vector3D:Vector3D — Objet Vector3D à partir duquel copier les données.
|
copyRowTo | () | méthode |
public function copyRowTo(row:uint, vector3D:Vector3D):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copie la ligne correspondante de l’objet Matrix appelant dans l’objet Vector3D. L’élément w de l’objet Vector3D ne sera pas modifié.
Paramètres
row:uint — Ligne à partir de laquelle copier les données.
| |
vector3D:Vector3D — Objet Vector3D à partir duquel copier les données.
|
createBox | () | méthode |
public function createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inclut les paramètres de redimensionnement, de rotation et de translation. Lorsqu’elle est appliquée à une matrice, elle définit ses valeurs en fonction de ces paramètres.
L’utilisation de la méthode createBox()
vous permet d’obtenir la même matrice que si vous appliquiez successivement les méthodes identity()
, rotate()
, scale()
et translate()
. Par exemple, mat1.createBox(2,2, Math.PI/4, 100, 100)
permet d’obtenir le résultat suivant :
import flash.geom.Matrix; var mat1:Matrix = new Matrix(); mat1.identity(); mat1.rotate(Math.PI/4); mat1.scale(2,2); mat1.translate(10,20);
Paramètres
scaleX:Number — Facteur à appliquer au redimensionnement horizontal.
| |
scaleY:Number — Facteur à appliquer au redimensionnement vertical.
| |
rotation:Number (default = 0 ) — Valeur de rotation, en radians.
| |
tx:Number (default = 0 ) — Nombre de pixels à translater (déplacer) vers la droite sur l’axe des x.
| |
ty:Number (default = 0 ) — Nombre de pixels à translater (déplacer) vers le bas sur l’axe des y.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
myMatrix
en appelant sa méthode createBox()
.
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 | () | méthode |
public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crée le style spécifique de matrice attendu par les méthodes beginGradientFill()
et lineGradientStyle()
de la classe Graphics. La largeur et la hauteur sont redimensionnées selon une paire scaleX
/scaleY
et les valeurs tx
/ty
sont décalées de la moitié de la largeur et de la hauteur.
Par exemple, supposons un dégradé possédant les caractéristiques suivantes:
GradientType.LINEAR
- Deux couleurs, vert et bleu, le tableau des rapports (ratios) correspondant à
[0, 255]
SpreadMethod.PAD
InterpolationMethod.LINEAR_RGB
Les illustrations suivantes représentent des dégradés dans lesquels la matrice a été définie à l’aide de la méthode createGradientBox()
et un paramétrage différent :
Paramètres createGradientBox() | Dégradé obtenu |
---|---|
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; |
Paramètres
width:Number — Largeur de la zone de dégradé.
| |
height:Number — Hauteur de la zone de dégradé.
| |
rotation:Number (default = 0 ) — Valeur de rotation, en radians.
| |
tx:Number (default = 0 ) — Distance, en pixels, à translater vers la droite sur l’axe des x. Cette valeur est décalée de la moitié du paramètre width .
| |
ty:Number (default = 0 ) — Distance, en pixels, à translater vers le bas sur l’axe des y. Cette valeur est décalée de la moitié du paramètre height .
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
myMatrix
en appelant sa méthode createBox()
.
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 | () | méthode |
public function deltaTransformPoint(point:Point):Point
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Etant donné un point dans l’espace de coordonnées de prétransformation, cette méthode renvoie les coordonnées de ce point après la transformation. Contrairement à la transformation standard appliquée via la méthode transformPoint()
, la transformation de la méthode deltaTransformPoint()
ne prend pas en considération les paramètres de translation tx
et ty
.
Paramètres
point:Point — Point pour lequel vous souhaitez obtenir le résultat de la transformation de matrice.
|
Point — Point résultant de l’application de la transformation de matrice.
|
identity | () | méthode |
public function identity():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Règle chaque propriété d’une matrice sur une valeur qui entraîne une transformation nulle. Un objet transformé par l’application d’une matrice d’identité est identique à l’objet d’origine.
Faisant suite à l’appel de la méthode identity()
, la matrice obtenue présente les propriétés suivantes : a
=1, b
=0, c
=0, d
=1, tx
=0, ty
=0.
Dans la notation des matrices, la matrice d’identité a l’aspect suivant :
invert | () | méthode |
public function invert():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Effectue la transformation opposée de la matrice d’origine. Vous pouvez appliquer une matrice inversée à un objet pour annuler la transformation effectuée lors de l’application de la matrice d’origine.
Exemple ( Comment utiliser cet exemple )
halfScaleMatrix
en appelant la méthode invert()
de doubleScaleMatrix
. Il démontre ensuite que les deux objets Matrix sont inversés l’un par rapport à l’autre (matrices annulant toute tranformation effectuée par son pendant) en créant originalAndInverseMatrix
qui est l’équivalent de 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 | () | méthode |
public function rotate(angle:Number):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Applique une transformation de rotation à l’objet Matrix.
La méthode rotate()
modifie les propriétés a
, b
, c
et d
de l’objet Matrix. Dans la notation des matrices, cela équivaut à concaténer la matrice actuelle et les matrices ci-dessous :
Paramètres
angle:Number — Angle de rotation en radians.
|
Plus d’exemples
scale | () | méthode |
public function scale(sx:Number, sy:Number):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Applique une transformation de redimensionnement à la matrice. L’axe des x est multiplié par sx
et l’axe des y par sy
.
La méthode scale()
modifie les propriétés a
et d
de l’objet Matrix. Dans la notation des matrices, cela équivaut à concaténer la matrice actuelle et les matrices ci-dessous :
Paramètres
sx:Number — Multiplicateur utilisé pour redimensionner l’objet sur l’axe des x.
| |
sy:Number — Multiplicateur utilisé pour redimensionner l’objet sur l’axe des y.
|
Plus d’exemples
setTo | () | méthode |
public function setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Définit les membres de la matrice sur les valeurs spécifiées
Paramètres
aa:Number — Valeurs sur lesquelles définir la matrice.
| |
ba:Number | |
ca:Number | |
da:Number | |
txa:Number | |
tya:Number |
toString | () | méthode |
public function toString():String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Renvoie une valeur de texte donnant la liste des propriétés de l’objet Matrix.
Valeur renvoyéeString — Chaîne répertoriant les valeurs des propriétés de l’objet Matrix : a , b , c , d , tx et ty .
|
transformPoint | () | méthode |
public function transformPoint(point:Point):Point
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Renvoie le résultat de l’application de la transformation géométrique représentée par l’objet Matrix au point spécifié.
Paramètres
point:Point — Point pour lequel vous souhaitez obtenir le résultat de la transformation Matrix.
|
Point — Point résultant de l’application de la transformation Matrix.
|
translate | () | méthode |
public function translate(dx:Number, dy:Number):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Translation de la matrice sur les axes x et y en fonction des paramètres dx
et dy
.
Paramètres
dx:Number — Quantité de mouvement vers la droite sur l’axe des x, en pixels.
| |
dy:Number — Quantité de mouvement vers le bas sur l’axe des y, en pixels.
|
Plus d’exemples
MatrixExample
pour montrer comment générer un carré de grande taille avec une zone de remplissage dégradée. Cette opération s’accomplit de la façon suivante :
- L’application crée un nouvel objet Matrix
myMatrix
et utilise la méthodetrace()
pour produire les valeurs de propriété par défaut de l’objetmyMatrix
. - L’application appelle
createGradientBox()
avec les paramètreswidth
etheight
définis sur 200 pixels ; il n’y a pas de rotation et la distance à translater sur les axes x et y est définie sur 50 pixels. - L’application imprime l’objet
myMatrix
une nouvelle fois pour signaler la modification après l’appel decreateGradientBox()
. - L’application utilise trois variables pour contrôler le remplissage de la zone de dégradé :
colors
: définit les couleurs de dégradé allant du rouge au bleu unis.alphas
: définit l’opacité sur uni.ratios
: définit une répartition des couleurs égale pour le rouge et le bleu.
- L’application appelle la méthode Graphics
beginGradientFill()
, qui est active sur l’objetmyMatrix
, et la méthodelineTo()
, qui se traduit par une zone de remplissage dégradée.
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, 09:30 AM Z