Packageflash.display
Classepublic final class Graphics
HéritageGraphics Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

La classe Graphics contient un ensemble de méthodes permettant de créer une forme vectorielle. Les objets d'affichage qui prennent en charge le dessin incluent les objets Sprite et Shape. Chacune de ces classes comporte une propriété graphics correspondant à un objet Graphics. Vous trouverez ci-dessous quelques-unes des fonctionnalités d'aide à la visualisation qui sont à votre disposition : drawRect(), drawRoundRect(), drawCircle() et drawEllipse().

Il est impossible de créer un objet Graphics directement à partir du code ActionScript. Si vous appelez new Graphics(), une exception est renvoyée.

La classe Graphics ne gère pas les sous-classes.

Consulter les exemples

Voir aussi

Principes de base de l'utilisation de l'API de dessin


Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
 Inheritedprototype : Object
[statique] Référence à l'objet prototype d'un objet de classe ou fonction.
Object
Méthodes publiques
 MéthodeDéfini par
  
beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
Remplit une zone de dessin d'une image bitmap.
Graphics
  
beginFill(color:uint, alpha:Number = 1.0):void
Spécifie un remplissage simple d'une couleur que des appels ultérieurs à d'autres méthodes Graphics (telles que lineTo() ou drawCircle()) utilisent lors du dessin.
Graphics
  
beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
Spécifie un remplissage en dégradé utilisé lors des appels suivants d'autres méthodes Graphics (telles que lineTo() ou drawCircle()) associées à l'objet.
Graphics
  
beginShaderFill(shader:Shader, matrix:Matrix = null):void
Spécifie un remplissage de shader utilisé lors des appels suivants d'autres méthodes Graphics (telles que lineTo() ou drawCircle()) associées à l'objet.
Graphics
  
Efface les graphiques dessinés dans l'objet Graphics et réinitialise les réglages de style de trait et de remplissage.
Graphics
  
copyFrom(sourceGraphics:Graphics):void
Copie toutes les commandes de dessin de l'objet Graphics source dans l'objet Graphics appelant.
Graphics
  
curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void
Dessine une courbe en utilisant le style de trait actuel à partir de la position actuelle jusqu'à (anchorX, anchorY) en utilisant le point de contrôle spécifié par (controlX, controlY).
Graphics
  
Dessine un cercle.
Graphics
  
drawEllipse(x:Number, y:Number, width:Number, height:Number):void
Dessine une ellipse.
Graphics
  
Soumet une série d'occurrences IGraphicsData pour le dessin.
Graphics
  
drawPath(commands:Vector.<int>, data:Vector.<Number>, winding:String = "evenOdd"):void
Soumet une série de commandes pour le dessin.
Graphics
  
drawRect(x:Number, y:Number, width:Number, height:Number):void
Dessine un rectangle.
Graphics
  
drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number = NaN):void
Dessine un rectangle arrondi.
Graphics
  
drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void
Restitue un ensemble de triangles, généralement pour déformer les images bitmap et leur donner un aspect tridimensionnel.
Graphics
  
Applique un remplissage aux lignes et aux courbes ajoutées depuis le dernier appel de la méthode beginFill(), beginGradientFill() ou beginBitmapFill().
Graphics
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
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
  
lineBitmapStyle(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
Spécifie une image bitmap à utiliser pour le trait lors du traçage des lignes.
Graphics
  
lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
Spécifie le dégradé à utiliser pour le trait lors du tracé des lignes.
Graphics
  
lineShaderStyle(shader:Shader, matrix:Matrix = null):void
Spécifie un shader à utiliser pour le trait lors du traçage des lignes.
Graphics
  
lineStyle(thickness:Number = NaN, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void
Spécifie le style de ligne utilisé pour les prochains appels aux méthodes Graphics, telles que lineTo() ou drawCircle().
Graphics
  
Trace une ligne en utilisant le style de trait actuel à partir de la position de dessin actuelle jusqu'à (x, y) ; la position de dessin actuelle est ensuite définie sur (x, y).
Graphics
  
Déplace la position de dessin actuelle vers (x, y).
Graphics
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
Détails de la méthode
beginBitmapFill()méthode
public function beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Remplit une zone de dessin d'une image bitmap. L'image bitmap peut être répétée ou former une mosaïque afin de remplir la zone. Le remplissage demeure actif jusqu'à ce que vous appeliez la méthode beginFill(), beginBitmapFill(), beginGradientFill() ou beginShaderFill(). Appeler la méthode clear() permet d'effacer le remplissage.

L'application effectue le remplissage lorsque trois points ou plus sont dessinés, ou lorsque la méthode endFill() est appelée.

Paramètres

bitmap:BitmapData — Image bitmap transparente ou opaque qui contient les bits à afficher.
 
matrix:Matrix (default = null) — Objet matrix (appartenant à la classe flash.geom.Matrix), qui permet de définir les transformations du bitmap. Par exemple, vous pouvez utiliser la matrice suivante pour faire pivoter un bitmap de 45 degrés (pi/4 radians) :
matrix = new flash.geom.Matrix(); 
  matrix.rotate(Math.PI / 4);
 
repeat:Boolean (default = true) — Si la valeur est true, l'image bitmap se reproduit pour former un motif. Si la valeur est false, l'image bitmap ne se répète pas et les bords du bitmap sont utilisés pour tout remplissage qui dépasse le bitmap.

Considérons par exemple le bitmap suivant (un motif en damier de 20 x 20 pixels) :

damier de 20x20 pixels

Lorsque la propriété repeat est définie sur true (comme dans l'exemple suivant), le remplissage bitmap répète le bitmap :

damier de 60x60 pixels

Lorsque la propriété repeat est définie sur false, le remplissage bitmap utilise les pixels du bord pour le remplissage en dehors du bitmap :

image de 60x60 pixels sans répétition

 
smooth:Boolean (default = false) — Si la valeur est false, les images bitmap agrandies sont rendues en appliquant un algorithme d'approximation et ont un aspect pixélisé. Si la valeur est true, les images bitmap agrandies sont rendues avec un algorithme bilinéaire. Les rendus qui résultent de l'utilisation de l'algorithme d'approximation sont plus rapides.

Voir aussi


Exemple

L'exemple suivant utilise une image (image1.jpg), pivotée et répétée pour remplir un rectangle.
  1. Le fichier image (image1.jpg) est chargé via les objets Loader et URLRequest. Ici, le fichier est dans le même répertoire que le fichier SWF. Le fichier SWF doit être compilé avec la Protection de lecture locale définie sur Accéder aux fichiers locaux seulement.
  2. Dès que l'image est chargée (à la fin de l'événement), la méthode drawImage() est appelée. La méthode ioErrorHandler() écrit un commentaire de suivi si l'image n'a pas été chargée correctement.
  3. Dans la méthode drawImage(), un objet BitmapData est instancié et sa largeur et sa largeur sont définies en fonction de l'image (image1.jpg ). L'image source est ensuite dessinée dans l'objet BitmapData. Ensuite, un rectangle est tracé dans l'objet Sprite mySprite et l'objet BitmapData est utilisé pour le remplir. A l'aide d'un objet Matrix, la méthode beginBitmapFill() fait pivoter l'image de 45 degrés, puis commence à remplir le rectangle avec l'image jusqu'à ce qu'il soit terminé.
package {
    import flash.display.Sprite;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.geom.Matrix;

    public class Graphics_beginBitmapFillExample extends Sprite {
 
        private var url:String = "image1.jpg";
        private var loader:Loader = new Loader();

        public function Graphics_beginBitmapFillExample() {

            var request:URLRequest = new URLRequest(url);
            
            loader.load(request);
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }

        private function drawImage(event:Event):void {

            var mySprite:Sprite = new Sprite();
            var myBitmap:BitmapData = new BitmapData(loader.width, loader.height, false);
  
            myBitmap.draw(loader, new Matrix());
            
            var matrix:Matrix = new Matrix();
            matrix.rotate(Math.PI/4);
            
            mySprite.graphics.beginBitmapFill(myBitmap, matrix, true);
            mySprite.graphics.drawRect(100, 50, 200, 90);
            mySprite.graphics.endFill();
            
            addChild(mySprite);
        }
 
         private function ioErrorHandler(event:IOErrorEvent):void {
            trace("Unable to load image: " + url);
        }
    }   
}
beginFill()méthode 
public function beginFill(color:uint, alpha:Number = 1.0):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Spécifie un remplissage simple d'une couleur que des appels ultérieurs à d'autres méthodes Graphics (telles que lineTo() ou drawCircle()) utilisent lors du dessin. Le remplissage demeure actif jusqu'à ce que vous appeliez la méthode beginFill(), beginBitmapFill(), beginGradientFill() ou beginShaderFill(). Appeler la méthode clear() permet d'effacer le remplissage.

L'application effectue le remplissage lorsque trois points ou plus sont dessinés, ou lorsque la méthode endFill() est appelée.

Paramètres

color:uint — Couleur du remplissage (0xRRGGBB).
 
alpha:Number (default = 1.0) — Valeur alpha du remplissage (de 0.0 à 1.0).

Voir aussi


Exemple
Utilisation des exemples
Pour une illustration de l'utilisation de cette méthode, consultez l'exemple présenté à la fin de ce cours.
beginGradientFill()méthode 
public function beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Spécifie un remplissage en dégradé utilisé lors des appels suivants d'autres méthodes Graphics (telles que lineTo() ou drawCircle()) associées à l'objet. Le remplissage demeure actif jusqu'à ce que vous appeliez la méthode beginFill(), beginBitmapFill(), beginGradientFill() ou beginShaderFill(). Appeler la méthode clear() permet d'effacer le remplissage.

L'application effectue le remplissage lorsque trois points ou plus sont dessinés, ou lorsque la méthode endFill() est appelée.

Paramètres

type:String — Valeur de la classe GradientType qui spécifie le type de dégradé à utiliser : GradientType.LINEAR ou GradientType.RADIAL.
 
colors:Array — Tableau de valeurs de couleurs RVB hexadécimales utilisé pour le dégradé (par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.). Vous pouvez définir jusqu'à 15 couleurs. Pour chaque couleur, définissez une valeur correspondante dans les paramètres alphas et ratios.
 
alphas:Array — Un tableau de valeurs alpha pour les couleurs correspondantes du tableau de couleurs ; les valeurs valides vont de 0 à 1. Si la valeur est inférieure à 0, la valeur par défaut est de 0. Si la valeur est supérieure à 1, la valeur par défaut est de 1.
 
ratios:Array — Tableau de taux de distribution des couleurs ; les valeurs disponibles sont comprises entre 0 et 255. Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée sur 100 %. La valeur 0 représente la position de gauche dans la zone de dégradés, tandis que 255 représente la position de droite.

Remarque : cette valeur représente les positions de la zone de dégradés, plutôt que l'espace de coordonnées du dégradé final, susceptible d'être plus large ou plus étroit que la zone de dégradés. Spécifiez une valeur pour chaque valeur dans le paramètre colors.

Par exemple, pour un dégradé linéaire qui comprend deux couleurs, bleu et vert, l'exemple suivant illustre l'emplacement des couleurs dans le dégradé selon les différentes valeurs du tableau ratios :

ratios Dégradé
[0, 127] dégradé linéaire du bleu au vert avec des taux de 0 et 127
[0, 255] dégradé linéaire du bleu au vert avec des taux de 0 et 255
[127, 255] dégradé linéaire du bleu au vert avec des taux de 127 et 255

Les valeurs du tableau doivent augmenter de manière séquentielle ; par exemple, [0, 63, 127, 190, 255].

 
matrix:Matrix (default = null) — Matrice de transformation définie par la classe flash.geom.Matrix. La classe flash.geom.Matrix inclut une méthode createGradientBox(), qui permet de configurer facilement la matrice en vue de son utilisation avec la méthode beginGradientFill().
 
spreadMethod:String (default = "pad") — Valeur de la classe SpreadMethod qui spécifie la méthode d'étalement à utiliser : SpreadMethod.PAD, SpreadMethod.REFLECT ou SpreadMethod.REPEAT.

Par exemple, considérons un dégradé linéaire simple entre deux couleurs :

import flash.geom.*
  import flash.display.*
  var fillType:String = GradientType.LINEAR;
  var colors:Array = [0xFF0000, 0x0000FF];
  var alphas:Array = [1, 1];
  var ratios:Array = [0x00, 0xFF];
  var matr:Matrix = new Matrix();
  matr.createGradientBox(20, 20, 0, 0, 0);
  var spreadMethod:String = SpreadMethod.PAD;
  this.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);  
  this.graphics.drawRect(0,0,100,100);

Cet exemple utilise SpreadMethod.PAD comme méthode d'étalement, et le remplissage en dégradé prend l'aspect suivant :

dégradé linéaire avec SpreadMethod.PAD

Si vous utilisez SpreadMethod.REFLECT comme méthode d'étalement, le remplissage en dégradé prend l'aspect suivant :

dégradé linéaire avec SpreadMethod.REFLECT

Si vous utilisez SpreadMethod.REPEAT comme méthode d'étalement, le remplissage en dégradé prend l'aspect suivant :

dégradé linéaire avec SpreadMethod.REPEAT

 
interpolationMethod:String (default = "rgb") — Valeur de la classe InterpolationMethod qui spécifie la valeur à utiliser : InterpolationMethod.LINEAR_RGB ou InterpolationMethod.RGB

Prenons, par exemple, un dégradé linéaire simple entre deux couleurs (le paramètre spreadMethod étant réglé sur SpreadMethod.REFLECT ). Les différentes méthodes d'interpolation influent sur l'aspect de la façon suivante :

dégradé linéaire avec InterpolationMethod.LINEAR_RGB dégradé linéaire avec InterpolationMethod.RGB
InterpolationMethod.LINEAR_RGB InterpolationMethod.RGB
 
focalPointRatio:Number (default = 0) — Nombre qui contrôle l'emplacement du point focal du dégradé. La valeur 0 signifie que le point focal est au centre. La valeur 1 signifie que le point focal est au bord du cercle du dégradé. La valeur -1 signifie que le point focal est sur l'autre bord du cercle du dégradé. Toute valeur inférieure à -1 ou supérieure à 1 est arrondie à -1 ou 1. Par exemple, l'exemple suivant affiche un paramètre focalPointRatio défini sur 0,75 :

dégradé linéaire avec focalPointRatio défini sur 0.75


Valeur émise
ArgumentError — Si le paramètre type n'est pas valide.

Voir aussi

beginShaderFill()méthode 
public function beginShaderFill(shader:Shader, matrix:Matrix = null):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Spécifie un remplissage de shader utilisé lors des appels suivants d'autres méthodes Graphics (telles que lineTo() ou drawCircle()) associées à l'objet. Le remplissage demeure actif jusqu'à ce que vous appeliez la méthode beginFill(), beginBitmapFill(), beginGradientFill() ou beginShaderFill(). Appeler la méthode clear() permet d'effacer le remplissage.

L'application effectue le remplissage lorsque trois points ou plus sont dessinés, ou lorsque la méthode endFill() est appelée.

Paramètres

shader:Shader — Shader à utiliser pour le remplissage. Cette occurrence Shader n'est pas obligatoire pour spécifier une entrée d'image. Toutefois, si une entrée d'image est spécifiée dans le shader, elle doit être fournie manuellement. Pour spécifier l'entrée, définissez la propriété input de la propriété ShaderInput correspondante de la propriété Shader.data.

Lorsque vous transmettez une occurrence Shader sous forme d'argument, le shader est copié en interne. L'opération de remplissage utilise cette copie interne et non une référence au shader d'origine. Toute modification apportée au shader, par exemple la modification de la valeur d'un paramètre, l'entrée ou le pseudo-code binaire, n'est pas appliquée au shader copié utilisé pour le remplissage.

 
matrix:Matrix (default = null) — Objet matrice (de la classe flash.geom.Matrix), que vous pouvez utiliser pour définir des transformations sur le shader. Par exemple, vous pouvez utiliser la matrice suivante pour faire pivoter un shader de 45 degrés (pi/4 radians) :
matrix = new flash.geom.Matrix(); 
  matrix.rotate(Math.PI / 4);

Les coordonnées reçues dans le shader sont basées sur la matrice spécifiée dans le paramètre matrix. Dans le cas d'une matrice par défaut (null), les coordonnées dans le shader sont en coordonnées de pixel locales qui peuvent être utilisées pour échantillonner une entrée.


Valeur émise
ArgumentError — Lorsque le type de sortie du shader n'est pas compatible avec cette opération (le shader doit spécifier une sortie pixel3 ou pixel4).
 
ArgumentError — Lorsque le shader spécifie une entrée d'image non fournie.
 
ArgumentError — Lorsqu'il s'agit d'un ByteArray ou d'un Vector.L'occurrence <Number> est utilisée comme entrée et les propriétés width et height ne sont pas spécifiées pour le ShaderInput, ou les valeurs spécifiées ne correspondent pas à la quantité de données dans l'objet d'entrée. Voir la propriété ShaderInput.input pour plus d'informations.

Voir aussi

clear()méthode 
public function clear():void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Efface les graphiques dessinés dans l’objet Graphics et réinitialise les réglages de style de trait et de remplissage.

copyFrom()méthode 
public function copyFrom(sourceGraphics:Graphics):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Copie toutes les commandes de dessin de l'objet Graphics source dans l'objet Graphics appelant.

Paramètres

sourceGraphics:Graphics — Objet Graphics à partir duquel les commandes de dessin doivent être copiées.

curveTo()méthode 
public function curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Dessine une courbe en utilisant le style de trait actuel à partir de la position actuelle jusqu'à (anchorX, anchorY) en utilisant le point de contrôle spécifié par (controlX, controlY). La position de dessin actuelle est ensuite définie sur (anchorX, anchorY ). Si le clip dans lequel vous dessinez intègre du contenu créé à l'aide des outils de dessin Flash, les appels de la méthode curveTo() sont tracés sous le contenu. Si vous appelez la méthode curveTo() avant d'appeler la méthode moveTo(), la position de dessin actuelle prend par défaut la valeur (0, 0). Si l'un des paramètres n'est pas spécifié, cette méthode échoue et la position de dessin actuelle n'est pas modifiée.

La courbe dessinée est une courbe de Bézier quadratique. Les courbes de Bézier quadratiques comprennent deux points d'ancrage et un point de contrôle. La courbe interpole les deux points d'ancrage et s'incurve en direction du point de contrôle.

Bézier quadratique et Bézier cubique

Paramètres

controlX:Number — Nombre qui spécifie la position horizontale du point de contrôle par rapport au point d'alignement de l'objet d'affichage parent.
 
controlY:Number — Nombre qui spécifie la position verticale du point de contrôle par rapport au point d'alignement de l'objet d'affichage parent.
 
anchorX:Number — Nombre qui spécifie la position horizontale du point d'ancrage suivant par rapport au point d'alignement de l'objet d'affichage parent.
 
anchorY:Number — Nombre qui spécifie la position verticale du point d'ancrage suivant par rapport au point d'alignement de l'objet d'affichage parent.


Exemple

L'exemple suivant dessine un objet circulaire vert avec une largeur et une hauteur de 100 pixels, 250 pixels à droite du point d'alignement (0, 0) de l'objet d'affichage Sprite.

Trace quatre courbes pour produire un cercle et le remplir en vert.

Notez que, du fait de la nature quadratique de l'équation Bézier, ce n'est pas un cercle parfait. La meilleure façon de tracer un cercle est d'utiliser la méthode drawCircle() de la classe Graphics.

package {
    import flash.display.Sprite;
    import flash.display.Shape;
    
    public class Graphics_curveToExample1 extends Sprite
    {
        public function Graphics_curveToExample1():void
        {
            var roundObject:Shape = new Shape();

            roundObject.graphics.beginFill(0x00FF00);
            roundObject.graphics.moveTo(250, 0);
            roundObject.graphics.curveTo(300, 0, 300, 50);
            roundObject.graphics.curveTo(300, 100, 250, 100);
            roundObject.graphics.curveTo(200, 100, 200, 50);
            roundObject.graphics.curveTo(200, 0, 250, 0);
            roundObject.graphics.endFill();
            
            this.addChild(roundObject);
        }
    }
}

L'exemple suivant trace une nouvelle lune à l'aide de la méthode curveTo().

Deux lignes courbes de 1 pixel sont tracées et l'espace qui les sépare est rempli en blanc. La méthode moveTo() est utilisée pour placer la position du dessin en cours aux coordonnées (100, 100). La première courbe déplace la position du dessin sur (100, 200), son point de destination. La seconde courbe retourne à la position d'origine (100, 100), son point de destination. Les points de contrôle horizontaux déterminent les différentes tailles des courbes.

package {
    import flash.display.Sprite;
    import flash.display.Shape;

    public class Graphics_curveToExample2 extends Sprite
    {
        public function Graphics_curveToExample2() {
            var newMoon:Shape = new Shape();
            
            newMoon.graphics.lineStyle(1, 0);
            newMoon.graphics.beginFill(0xFFFFFF);
            newMoon.graphics.moveTo(100, 100); 
            newMoon.graphics.curveTo(30, 150, 100, 200);    
            newMoon.graphics.curveTo(50, 150, 100, 100);
            graphics.endFill();
            
            this.addChild(newMoon);
        }
    }
}
drawCircle()méthode 
public function drawCircle(x:Number, y:Number, radius:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Dessine un cercle. Vous devez définir le remplissage et/ou le style de ligne avant d'appeler la méthode drawCircle(), à l'aide de la méthode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() ou beginBitmapFill().

Paramètres

x:Number — Coordonnée x du centre du cercle par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
y:Number — Coordonnée y du centre du cercle par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
radius:Number — Rayon du cercle (en pixels).

Voir aussi


Exemple
Utilisation des exemples
Pour une illustration de l'utilisation de cette méthode, consultez l'exemple présenté à la fin de ce cours.
drawEllipse()méthode 
public function drawEllipse(x:Number, y:Number, width:Number, height:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Dessine une ellipse. Vous devez définir le remplissage et/ou le style de ligne avant d'appeler la méthode drawEllipse(), à l'aide de la méthode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() ou beginBitmapFill().

Paramètres

x:Number — Coordonnée x de la partie supérieure gauche du cadre de délimitation de l'ellipse par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
y:Number — Coordonnée y de la partie supérieure gauche du cadre de délimitation de l'ellipse par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
width:Number — Largeur de l'ellipse (en pixels).
 
height:Number — Hauteur de l'ellipse (en pixels).

Voir aussi


Exemple

L'exemple suivant utilise la fonction drawEgg() pour tracer trois oeufs de tailles différentes (trois tailles d'ovale), en fonction du paramètre eggSize.
  1. Le constructeur appelle la fonction drawEgg() et transmet les paramètres horizontaux et verticaux d'emplacement du traçage des oeufs, plus le type d'oeuf (eggSize ). (La hauteur et la largeur des oeufs (les ovales) peuvent être utilisées pour décider de l'emplacement où ils doivent s'afficher.)
  2. La fonction drawEgg() trace les ovales de tailles différentes et les remplit à l'aide de la méthode beginFill(). Aucune gestion d'erreur avancée n'a été écrite pour sa fonction.
package {
    import flash.display.Sprite;
    import flash.display.Shape;

    public class Graphics_drawEllipseExample extends Sprite
    {
        public static const SMALL:uint = 0;
        public static const MEDIUM:uint = 1;
        public static const LARGE:uint = 2;

        public function Graphics_drawEllipseExample()
        {
            drawEgg(SMALL, 0, 100);
            drawEgg(MEDIUM, 100, 60);
            drawEgg(LARGE, 250, 35);    
        }

        public function drawEgg(eggSize:uint, x:Number, y:Number):void  {
            
            var myEgg:Shape = new Shape();
            
            myEgg.graphics.beginFill(0xFFFFFF);
            myEgg.graphics.lineStyle(1);

            switch(eggSize) {
                case SMALL:
                    myEgg.graphics.drawEllipse(x, y, 60, 70);
                    break;
                case MEDIUM:
                    myEgg.graphics.drawEllipse(x, y, 120, 150);    
                    break;
                case LARGE:
                    myEgg.graphics.drawEllipse(x, y, 150, 200);
                    break;
                default:
                    trace ("Wrong size! There is no egg.");
                break;            
            }
            
            myEgg.graphics.endFill();
    
            this.addChild(myEgg);
        }
    }
}
drawGraphicsData()méthode 
public function drawGraphicsData(graphicsData:Vector.<IGraphicsData>):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Soumet une série d'occurrences IGraphicsData pour le dessin. Cette méthode accepte un objet Vector contenant des objets, y compris des tracés, des remplissages et des traits, qui implémentent l'interface IGraphicsData. Un objet Vector des occurrences IGraphicsData peut se reporter à une forme ou à un jeu de données complexe et complètement défini pour restituer une forme complète.

Les tracés des graphiques peuvent contenir d'autres tracés de graphiques. Si le vecteur graphicsData inclut un tracé, ce dernier et tous ses sous-tracés sont restitués au cours de cette opération.

Paramètres

graphicsData:Vector.<IGraphicsData> — Objet Vector contenant des objets graphiques, dont chacun doit implémenter l'interface IGraphicsData.

Voir aussi

drawPath()méthode 
public function drawPath(commands:Vector.<int>, data:Vector.<Number>, winding:String = "evenOdd"):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Soumet une série de commandes pour le dessin. La méthode drawPath() utilise les tableaux vectoriels pour regrouper les commandes de dessin individuelles moveTo(), lineTo() et curveTo() dans un seul appel. Les paramètres de la méthode drawPath() associent des commandes de dessin comportant des paires de valeurs de coordonnées x et y à une direction de dessin. Les commandes de dessin sont des valeurs issues de la classe GraphicsPathCommand. Les paires de valeurs des coordonnées x et y sont des nombres dans un tableau où chaque paire définit un emplacement de coordonnée. La direction de dessin est une valeur issue de la classe GraphicsPathWinding.

En général, le rendu des dessins sera plus rapide avec la méthode drawPath() qu'avec une série de méthodes individuelles lineTo() et curveTo().

La méthode drawPath() utilise un calcul en virgule flottante afin que la rotation et la mise à l'échelle des formes soient plus précises et donnent de meilleurs résultats. Toutefois, les courbes soumises à l'aide de la méthode drawPath() peuvent comporter de petites erreurs d'alignement des sous-pixels lorsqu'elles sont utilisées en conjonction avec les méthodes lineTo() et curveTo().

La méthode drawPath() utilise également des règles légèrement différentes pour le remplissage et le dessin des lignes. Voici ces règles :

Paramètres

commands:Vector.<int> — Vecteur d'entiers représentant les commandes définies par la classe GraphicsPathCommand. La classe GraphicsPathCommand associe les commandes à des identifiants numériques pour ce tableau vectoriel.
 
data:Vector.<Number> — Vecteur de nombres où chaque paire de nombres est traitée comme un emplacement de coordonnées (paire x, y). Les valeurs des coordonnées x et y ne sont pas des objets Point ; le vecteur data correspond à une série de nombres où chaque groupe de deux nombres représente l'emplacement d'une coordonnée.
 
winding:String (default = "evenOdd") — Spécifie la règle d'enroulement à l'aide d'une valeur définie dans la classe GraphicsPathWinding.

Voir aussi


Exemple

L'exemple suivant remplit deux objets Vector, puis les transmet à la méthode drawPath() pour obtenir une étoile bleue. Le premier objet Vector, star_commands, contient une série d'entiers qui représentent les commandes de dessin de la classe flash.display.GraphicsPathCommand, où la valeur 1 correspond à la commande MoveTo() et la valeur 2 correspond à la commande LineTo(). Le deuxième objet Vector, star_coord, contient 5 jeux de paires de coordonnées x et y. La méthode drawPath() fait correspondre les commandes avec les positions afin de dessiner une étoile.
package{
    import flash.display.*;
    
    public class DrawPathExample extends Sprite {

    public function DrawPathExample(){

    var star_commands:Vector.<int> = new Vector.<int>(5, true);
    
    star_commands[0] = 1;
    star_commands[1] = 2;
    star_commands[2] = 2;
    star_commands[3] = 2;
    star_commands[4] = 2;

    var star_coord:Vector.<Number> = new Vector.<Number>(10, true);
    star_coord[0] = 66; //x
    star_coord[1] = 10; //y 
    star_coord[2] = 23; 
    star_coord[3] = 127; 
    star_coord[4] = 122; 
    star_coord[5] = 50; 
    star_coord[6] = 10; 
    star_coord[7] = 49; 
    star_coord[8] = 109; 
    star_coord[9] = 127;


    graphics.beginFill(0x003366);
    graphics.drawPath(star_commands, star_coord);

    }

    }
}
Remarque : par défaut, la méthode drawPath() utilise le type d'enroulement pair/impair. Par conséquent, le centre de l'étoile n'est pas rempli. Pour remplir le centre de l'étoile, spécifiez le type d'enroulement non nul du troisième paramètre :
graphics.drawPath(star_commands, star_coord, GraphicsPathWinding.NON_ZERO);
drawRect()méthode 
public function drawRect(x:Number, y:Number, width:Number, height:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Dessine un rectangle. Vous devez définir le remplissage et/ou le style de ligne avant d'appeler la méthode drawRect(), à l'aide de la méthode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() ou beginBitmapFill().

Paramètres

x:Number — Nombre indiquant la position horizontale par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
y:Number — Nombre indiquant la position verticale par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
width:Number — Largeur du rectangle (en pixels).
 
height:Number — Hauteur du rectangle (en pixels).


Valeur émise
ArgumentError — Si le paramètre width ou height n'est pas un nombre (Number.NaN ).

Voir aussi


Exemple
Utilisation des exemples
Pour une illustration de l'utilisation de cette méthode, consultez l'exemple présenté à la fin de ce cours.
drawRoundRect()méthode 
public function drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number = NaN):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Dessine un rectangle arrondi. Vous devez définir le remplissage et/ou le style de ligne avant d'appeler la méthode drawRoundRect(), à l'aide de la méthode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() ou beginBitmapFill().

Paramètres

x:Number — Nombre indiquant la position horizontale par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
y:Number — Nombre indiquant la position verticale par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
width:Number — Largeur du rectangle arrondi (en pixels).
 
height:Number — Hauteur du rectangle arrondi (en pixels).
 
ellipseWidth:Number — La largeur de l'ellipse utilisée pour dessiner les coins arrondis (en pixels).
 
ellipseHeight:Number (default = NaN) — La hauteur de l'ellipse utilisée pour dessiner les coins arrondis (en pixels). Facultatif. Si aucune valeur n'est spécifiée, la valeur par défaut correspond à la valeur fournie pour le paramètre ellipseWidth.


Valeur émise
ArgumentError — Si le paramètre width, height, ellipseWidth ou ellipseHeight n'est pas un nombre (Number.NaN ).

Voir aussi


Exemple
Utilisation des exemples
Pour une illustration de l'utilisation de cette méthode, consultez l'exemple présenté à la fin de ce cours.
drawTriangles()méthode 
public function drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Restitue un ensemble de triangles, généralement pour déformer les images bitmap et leur donner un aspect tridimensionnel. La méthode drawTriangles() mappe le remplissage actuel ou un remplissage sur les faces des triangles à l'aide d'un jeu de coordonnées (u,v).

Tous les types de remplissage peuvent être utilisés, mais si le remplissage possède une matrice de transformation, celle-ci est ignorée.

Un paramètre uvtData permet d'améliorer le mappage des textures lorsqu'un remplissage bitmap est utilisé.

Paramètres

vertices:Vector.<Number> — Vecteur de nombres où chaque paire de nombres est traitée comme un emplacement de coordonnées (paire x, y). Le paramètre vertices est requis.
 
indices:Vector.<int> (default = null) — Vecteur d'entiers ou d'index, où chaque groupe de trois index définit un triangle. Si le paramètre indexes est défini sur null, chaque groupe de trois sommets (six paires de x,y dans le vecteur vertices) définit un triangle. Sinon, chaque index fait référence à un sommet, ou paire de nombres dans le vecteur vertices. Par exemple indexes[1] fait référence à (vertices[2], vertices[3] ). Le paramètre indexes est facultatif, mais il permet généralement de réduire le volume des données envoyées et traitées.
 
uvtData:Vector.<Number> (default = null) — Vecteur de coordonnées normalisées utilisées pour appliquer un mappage de texture. Chaque coordonnée fait référence à un point sur le bitmap utilisé pour le remplissage. Vous devez disposer d'une coordonnée UV ou UVT par sommet. Dans coordonnées UV, (0,0) est le coin supérieur gauche du bitmap et (1,1) le coin inférieur droit.

Si la longueur de ce vecteur est le double de celle du vecteur vertices, les coordonnées normalisées sont utilisées sans correction de perspective.

Si la longueur de ce vecteur est le triple de la longueur du vecteur vertices, la troisième coordonnée est interprétée comme 't' (distance séparant l'oeil de la texture dans l'espace visuel). Cela permet au moteur de rendu d'appliquer correctement la perspective lors du mappage des textures en 3D.

Si le paramètre uvtData est null, les règles de remplissage normal (et tous types de remplissage) s'appliquent.

 
culling:String (default = "none") — Indique si les triangles tournés vers une direction spécifique doivent être restitués. Ce paramètre permet d'éviter de restituer les triangles que la vue en cours ne permet pas de voir. Ce paramètre peut être réglé sur toute valeur définie par la classe TriangleCulling.

Voir aussi

endFill()méthode 
public function endFill():void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Applique un remplissage aux lignes et aux courbes ajoutées depuis le dernier appel de la méthode beginFill(), beginGradientFill() ou beginBitmapFill(). Flash utilise le remplissage spécifié lors de l'appel précédent de la méthode beginFill(), beginGradientFill() ou beginBitmapFill(). Si la position de dessin actuelle n'est pas égale à la position précédente spécifiée dans une méthode moveTo() et si un remplissage est défini, le tracé est fermé à l'aide d'une ligne, puis rempli.

Voir aussi

lineBitmapStyle()méthode 
public function lineBitmapStyle(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Spécifie une image bitmap à utiliser pour le trait lors du traçage des lignes.

Le style de ligne de l'image bitmap est utilisé pour les prochains appels aux méthodes Graphics, telles que lineTo() ou drawCircle(). Le style de ligne demeure en vigueur jusqu'à ce que vous appeliez les méthodes lineStyle() ou lineGradientStyle(), ou de nouveau la méthode lineBitmapStyle() en spécifiant d'autres paramètres.

Vous pouvez appeler la méthode lineBitmapStyle() au cours du traçage pour spécifier différents styles pour divers segments de ligne dans un tracé.

Appelez la méthode lineStyle() avant d'appeler la méthode lineBitmapStyle() pour activer un trait, sinon la valeur du style de ligne est undefined.

les appels de la méthode clear() redéfinissent le style de trait sur undefined.

Paramètres

bitmap:BitmapData — Bitmap à utiliser pour le trait.
 
matrix:Matrix (default = null) — Matrice de transformation optionnelle définie par la classe flash.geom.Matrix. La matrice peut être utilisée pour redimensionner ou manipuler l'image bitmap d'une manière ou d'une autre avant de l'appliquer au style de ligne.
 
repeat:Boolean (default = true) — Indique si l'image bitmap doit être répétée pour former une mosaïque.
 
smooth:Boolean (default = false) — Indique si l'image bitmap doit être lissée.

Voir aussi

lineGradientStyle()méthode 
public function lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Spécifie le dégradé à utiliser pour le trait lors du tracé des lignes.

Le style de ligne dégradée est utilisé pour tous les appels suivants aux méthodes Graphics, telles que les méthodes lineTo() ou drawCircle(). Le style de ligne demeure en vigueur jusqu'à ce que vous appeliez les méthodes lineStyle() ou lineBitmapStyle(), ou de nouveau la méthode lineGradientStyle() en spécifiant d'autres paramètres.

Vous pouvez appeler la méthode lineGradientStyle() au cours du dessin pour spécifier différents styles pour divers segments de ligne dans un tracé.

Appelez la méthode lineStyle() avant d'appeler la méthode lineGradientStyle() pour activer un trait, sinon la valeur du style de ligne est undefined.

les appels de la méthode clear() redéfinissent le style de trait sur undefined.

Paramètres

type:String — Valeur de la classe GradientType qui spécifie le type de dégradé à utiliser, GradientType.LINEAR ou GradientType.RADIAL.
 
colors:Array — Tableau de valeurs de couleurs RVB hexadécimales à utiliser pour le dégradé (par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.).
 
alphas:Array — Un tableau de valeurs alpha pour les couleurs correspondantes du tableau de couleurs ; les valeurs valides vont de 0 à 1. Si la valeur est inférieure à 0, la valeur par défaut est de 0. Si la valeur est supérieure à 1, la valeur par défaut est de 1.
 
ratios:Array — Tableau de taux de distribution des couleurs ; les valeurs valides sont comprises entre 0 et 255. Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée sur 100 %. La valeur 0 représente la position de gauche dans la zone de dégradés, tandis que 255 représente la position de droite. Cette valeur représente les positions de la zone de dégradés, plutôt que l'espace de coordonnées du dégradé final, pouvant être plus large ou plus étroit que la zone de dégradés. Spécifiez une valeur pour chaque valeur dans le paramètre colors.

Par exemple, pour un dégradé linéaire qui comprend deux couleurs, bleu et vert, la figure suivante illustre l'emplacement des couleurs dans le dégradé selon les différentes valeurs du tableau ratios :

ratios Dégradé
[0, 127] dégradé linéaire du bleu au vert avec des taux de 0 et 127
[0, 255] dégradé linéaire du bleu au vert avec des taux de 0 et 255
[127, 255] dégradé linéaire du bleu au vert avec des taux de 127 et 255

Les valeurs du tableau doivent augmenter de manière séquentielle ; par exemple, [0, 63, 127, 190, 255].

 
matrix:Matrix (default = null) — Matrice de transformation définie par la classe flash.geom.Matrix. La classe flash.geom.Matrix inclut une méthode createGradientBox(), qui permet de configurer facilement la matrice en vue de son utilisation avec la méthode lineGradientStyle().
 
spreadMethod:String (default = "pad") — Valeur de la classe SpreadMethod qui spécifie la méthode d'étalement à utiliser :

dégradé linéaire avec SpreadMethod.PAD dégradé linéaire avec SpreadMethod.REFLECT dégradé linéaire avec SpreadMethod.REPEAT
SpreadMethod.PAD SpreadMethod.REFLECT SpreadMethod.REPEAT

 
interpolationMethod:String (default = "rgb") — Valeur de la classe InterpolationMethod qui spécifie la valeur à utiliser. Prenons, par exemple, un dégradé linéaire simple entre deux couleurs (le paramètre spreadMethod étant réglé sur SpreadMethod.REFLECT ). Les différentes méthodes d'interpolation influent sur l'aspect de la façon suivante :

dégradé linéaire avec InterpolationMethod.LINEAR_RGB dégradé linéaire avec InterpolationMethod.RGB
InterpolationMethod.LINEAR_RGB InterpolationMethod.RGB

 
focalPointRatio:Number (default = 0) — Nombre qui contrôle l'emplacement du point focal du dégradé. La valeur 0 signifie que le point focal est au centre. La valeur 1 signifie que le point focal est au bord du cercle du dégradé. La valeur -1 signifie que le point focal est sur l'autre bord du cercle du dégradé. Toute valeur inférieure à -1 ou supérieure à 1 est arrondie à -1 ou 1. L'image suivante affiche un dégradé avec le paramètre focalPointRatio défini sur -0,75 :

dégradé linéaire avec focalPointRatio défini sur 0.75

Voir aussi


Exemple

L'exemple suivant trace un rectangle et un cercle qui utilisent un contour dégradé du rouge au bleu en passant par le vert.

La méthode createGradientBox() de la classe Matrix est utilisée pour définir la zone de dégradé sur une largeur de 200 et une hauteur de 40. L'épaisseur de la ligne est définie sur 5 pixels. L'épaisseur du contour doit être définie pour la méthode lineGradientStyle(). Le dégradé est défini sur linéaire. Les couleurs du dégradé sont définies sur rouge, vert et bleu. La transparence (valeur alpha) des couleurs est définie sur 1 (opaque). La distribution du dégradé est régulière, avec des couleurs allant de 100 % à 0 (à gauche de la zone de dégradé), 128 (centre de la zone) et 255 (à droite de la zone). La largeur du rectangle couvre tout le spectre du dégradé, alors que le cercle en couvre 50 % depuis le centre du spectre.

package {
    import flash.display.Sprite;
    import flash.display.Shape;
    import flash.geom.Matrix; 
    import flash.display.GradientType;
    
    public class Graphics_lineGradientStyleExample extends Sprite
    {
        public function Graphics_lineGradientStyleExample()
        {
            var myShape:Shape = new Shape();
            var gradientBoxMatrix:Matrix = new Matrix();
  
            gradientBoxMatrix.createGradientBox(200, 40, 0, 0, 0);  
            
            myShape.graphics.lineStyle(5);
  
            myShape.graphics.lineGradientStyle(GradientType.LINEAR, [0xFF0000,
            0x00FF00, 0x0000FF], [1, 1, 1], [0, 128, 255], gradientBoxMatrix);
            
            myShape.graphics.drawRect(0, 0, 200, 40);
            myShape.graphics.drawCircle(100, 120, 50);  
             
            this.addChild(myShape);
    
        }
    }
}
lineShaderStyle()méthode 
public function lineShaderStyle(shader:Shader, matrix:Matrix = null):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: Flash Player 10, AIR 1.5

Spécifie un shader à utiliser pour le trait lors du traçage des lignes.

Le style de ligne du shader est utilisé pour les prochains appels aux méthodes Graphics, telles que lineTo() ou drawCircle(). Le style de ligne demeure en vigueur jusqu'à ce que vous appeliez les méthodes lineStyle() ou lineGradientStyle(), ou de nouveau la méthode lineBitmapStyle() en spécifiant d'autres paramètres.

Vous pouvez appeler la méthode lineShaderStyle() au cours du tracé afin de spécifier différents styles pour divers segments de ligne dans un tracé.

Appelez la méthode lineStyle() avant d'appeler la méthode lineShaderStyle() pour activer un trait, sinon la valeur du style de ligne est undefined.

les appels de la méthode clear() redéfinissent le style de trait sur undefined.

Paramètres

shader:Shader — Shader à utiliser pour le trait.
 
matrix:Matrix (default = null) — Matrice de transformation optionnelle définie par la classe flash.geom.Matrix. La matrice peut être utilisée pour redimensionner ou manipuler l'image bitmap d'une manière ou d'une autre avant de l'appliquer au style de ligne.

Voir aussi

lineStyle()méthode 
public function lineStyle(thickness:Number = NaN, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Spécifie le style de ligne utilisé pour les prochains appels aux méthodes Graphics, telles que lineTo() ou drawCircle(). Le style de trait demeure en vigueur jusqu'à l'appel de la méthode lineGradientStyle(), lineBitmapStyle() ou lineStyle() en spécifiant d'autres paramètres.

Vous pouvez appeler la méthode lineStyle() au cours du traçage afin de spécifier des styles différents pour les divers segments de ligne dans le tracé.

Remarque : les appels de la méthode clear() redéfinissent le style de trait sur undefined.

Paramètres

thickness:Number (default = NaN) — Un entier qui indique l'épaisseur de la ligne en points ; les valeurs disponibles sont comprises entre 0 et 255. Si aucun nombre n'est spécifié, ou si le paramètre n'est pas défini, aucune ligne n'est dessinée. Si une valeur inférieure à 0 est transmise, la valeur par défaut est de 0. 0 correspond à l'épaisseur minimale et 255 à l'épaisseur maximale. Si la valeur transmise est supérieure à 255, la valeur par défaut est de 255.
 
color:uint (default = 0) — Valeur hexadécimale de la couleur de la ligne (par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.). Si aucune valeur n'est indiquée, la valeur par défaut correspond à 0x000000 (noir). Facultatif.
 
alpha:Number (default = 1.0) — Un nombre qui indique la valeur alpha de la couleur de la ligne. Les valeurs valides vont de 0 à 1. Si aucune valeur n'est indiquée, la valeur par défaut est de 1 (uni). Si la valeur est inférieure à 0, la valeur par défaut est de 0. Si la valeur est supérieure à 1, la valeur par défaut est de 1.
 
pixelHinting:Boolean (default = false) — Valeur booléenne qui permet d'ajouter des indices supplémentaires de lissage des pixels. Cette valeur affecte à la fois la position des ancres de courbe et la taille du trait. Avec pixelHinting réglé sur true, les largeurs de lignes sont réglées sur des largeurs de pixels entières. Si pixelHinting est défini sur false, les courbes et les lignes droites risquent de ne pas être continues. Les exemples ci-dessous illustrent comment Flash Player ou Adobe AIR effectue le rendu de deux rectangles arrondis identiques à une exception près : le réglage du paramètre pixelHinting utilisé par la méthode lineStyle() (les images sont mises à l’échelle 200 %, pour mettre en évidence la différence) :

pixelHinting false et pixelHinting true

Si vous ne spécifiez pas de valeur, la ligne n'utilise pas les indices de lissage des pixels.

 
scaleMode:String (default = "normal") — Valeur de la classe LineScaleMode qui spécifie le mode d'échelle à utiliser :
  • LineScaleMode.NORMAL — Redimensionne toujours l'épaisseur du trait si l'objet est redimensionné (valeur par défaut).
  • LineScaleMode.NONE — Ne redimensionne jamais l'épaisseur du trait.
  • LineScaleMode.VERTICAL — N'ajuste pas l'épaisseur du trait si l'objet est redimensionné verticalement uniquement. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d'un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.VERTICAL. Le cercle de gauche est redimensionné verticalement uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l'horizontale :

    Un cercle redimensionné verticalement, et un cercle redimensionné verticalement et horizontalement.

  • LineScaleMode.HORIZONTAL — N'ajuste pas l'épaisseur du trait si l'objet est redimensionné horizontalement uniquement. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d'un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.HORIZONTAL. Le cercle de gauche est redimensionné horizontalement uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l'horizontale :

    Un cercle redimensionné horizontalement, et un cercle redimensionné verticalement et horizontalement.

 
caps:String (default = null) — Valeur de la classe CapsStyle qui spécifie le type d'extrémité au bout des lignes. Les valeurs possibles sont les suivantes : CapsStyle.NONE, CapsStyle.ROUND et CapsStyle.SQUARE. En l'absence de valeur, Flash utilise des extrémités rondes.

Par exemple, l'illustration suivante présente les différents réglages capsStyle. Pour chaque paramètre, l'illustration présente une ligne bleue dont l'épaisseur est de 30 (pour laquelle capsStyle s'applique), et une ligne noire superposée dont l'épaisseur est de 1 (pour laquelle aucun capsStyle ne s'applique) :

NONE, ROUND et SQUARE

 
joints:String (default = null) — Valeur de la classe JointStyle qui spécifie le type d'apparence de liaison utilisé dans les angles. Les valeurs possibles sont les suivantes : JointStyle.BEVEL, JointStyle.MITER et JointStyle.ROUND. En l'absence de valeurs, Flash utilise des liaisons rondes.

Par exemple, l'illustration suivante présente les différents réglages joints. Pour chaque paramètre, l'illustration présente une ligne bleue en angle dont l'épaisseur est de 30 (pour laquelle jointStyle s'applique), et une ligne noire en angle superposée dont l'épaisseur est de 1 (pour laquelle aucun jointStyle ne s'applique) :

MITER, ROUND et BEVEL

Remarque : pour les paramètres joints définis sur JointStyle.MITER, vous pouvez utiliser le paramètre miterLimit pour limiter la longueur de la pointe.

 
miterLimit:Number (default = 3) — Nombre qui indique la limite à laquelle une pointe est coupée. Les valeurs disponibles sont comprises entre 1 et 255 (et les valeurs qui excèdent cette plage sont arrondies à 1 ou 255). Cette valeur n'est utilisée que si jointStyle est défini sur "miter". La valeur miterLimit représente la longueur maximale d'une pointe au-delà du point où les lignes se rencontrent pour former une liaison. La valeur exprime un facteur du paramètre thickness de la ligne. Par exemple, avec un facteur miterLimit de 2,5 et une valeur de thickness de 10 pixels, la pointe est coupée à 25 pixels.

Par exemple, les lignes d'angle suivantes dessinent un objet avec un paramètre thickness d'une valeur de 20, mais un paramètre miterLimit défini sur 1, 2 et 4. Les lignes de référence noires sont surimposées et indiquent les points de rencontre des pointes :

lignes avec miterLimit défini sur 1, 2 et 4

Notez qu'une valeur miterLimit donnée possède un angle maximal spécifique pour lequel la pointe est coupée. Vous trouverez quelques exemples dans le tableau suivant :

Valeur miterLimit : Les angles inférieurs aux valeurs indiquées sont coupés :
1.41490 degrés
260 degrés
430 degrés
815 degrés

Voir aussi


Exemple
Utilisation des exemples
Consultez l'exemple de la méthode lineTo() ou moveTo() pour voir des illustrations de l'utilisation de la méthode getStyle().
lineTo()méthode 
public function lineTo(x:Number, y:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Trace une ligne en utilisant le style de trait actuel à partir de la position de dessin actuelle jusqu'à (x, y) ; la position de dessin actuelle est ensuite réglée sur (x, y ). Si l'objet d'affichage dans lequel vous effectuez le traçage possède un contenu créé à l'aide des outils de dessin Flash, les appels de la méthode lineTo() sont tracés sous le contenu. Si vous appelez lineTo() avant d'appeler la méthode moveTo(), la position de dessin par défaut prend la valeur (0, 0 ). Si l'un des paramètres n'est pas spécifié, cette méthode échoue et la position de dessin actuelle n'est pas modifiée.

Paramètres

x:Number — Nombre indiquant la position horizontale par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
y:Number — Nombre indiquant la position verticale par rapport au point d'alignement de l'objet d'affichage parent (en pixels).


Exemple

L'exemple suivant trace un trapèze via la méthode lineTo(), en commençant aux pixels (100, 100).

L'épaisseur des lignes est définie sur 10 pixels, la couleur est dorée et opaque, les extrémités des lignes sont définies sur aucun (car toutes les lignes se rejoignent) et la jonction entre les lignes est définie sur MITER avec une limite de pointe définie sur 10, pour obtenir des angles pointus.

package {
    import flash.display.Sprite;
    import flash.display.LineScaleMode;
    import flash.display.CapsStyle;
    import flash.display.JointStyle;
    import flash.display.Shape;


    public class Graphics_lineToExample extends Sprite {

        public function Graphics_lineToExample() {

            var trapezoid:Shape = new Shape();    

            trapezoid.graphics.lineStyle(10, 0xFFD700, 1, false, LineScaleMode.VERTICAL,
                               CapsStyle.NONE, JointStyle.MITER, 10);

            trapezoid.graphics.moveTo(100, 100);
 
            trapezoid.graphics.lineTo(120, 50);
            trapezoid.graphics.lineTo(200, 50);
            trapezoid.graphics.lineTo(220, 100);
            trapezoid.graphics.lineTo(100, 100); 

            this.addChild(trapezoid);
        }
    }
}
moveTo()méthode 
public function moveTo(x:Number, y:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Déplace la position de dessin actuelle vers (x, y ). Si l'un des paramètres n'est pas spécifié, cette méthode échoue et la position de dessin actuelle n'est pas modifiée.

Paramètres

x:Number — Nombre indiquant la position horizontale par rapport au point d'alignement de l'objet d'affichage parent (en pixels).
 
y:Number — Nombre indiquant la position verticale par rapport au point d'alignement de l'objet d'affichage parent (en pixels).


Exemple

L'exemple suivant trace une ligne pointillée de trois pixels d'épaisseur à l'aide des méthodes moveTo() et lineTo().

Via la méthode lineStyle(), l'épaisseur de la ligne est définie sur 3 pixels. Elle est également définie pour ne pas changer d'échelle. La couleur est définie sur le rouge avec 25 pour cent d'opacité. La propriété CapsStyle est définie sur carré (le rond est défini par défaut).

Graphics_moveToExample étant une occurrence de la classe Sprite, elle a accès à toutes les méthodes de la classe Graphics. Les méthodes de la classe Graphics ne peuvent pas être utilisées pour dessiner directement sur l'objet Sprite Graphic_moveToExample. Toutefois, le fait de ne pas placer l'objet de traçage du vecteur dans une forme limite les possibilités de gestion, de déplacement et de modification.

package {
    import flash.display.Sprite;
    import flash.display.CapsStyle;
    import flash.display.LineScaleMode;

    public class Graphics_moveToExample extends Sprite
    {
        public function Graphics_moveToExample() {
            
            graphics.lineStyle(3, 0x990000, 0.25, false, 
                            LineScaleMode.NONE, CapsStyle.SQUARE);

            graphics.moveTo(10, 20);
            graphics.lineTo(20, 20);
            graphics.moveTo(30, 20);
            graphics.lineTo(50, 20);
            graphics.moveTo(60, 20);
            graphics.lineTo(80, 20);
            graphics.moveTo(90, 20);
            graphics.lineTo(110, 20);            
            graphics.moveTo(120, 20);
            graphics.lineTo(130, 20);           
        }
    }
}
Exemples Utilisation des exemples
GraphicsExample.as

L'exemple suivant utilise la classe GraphicsExample pour dessiner un cercle, un rectangle arrondi et un carré. Cette tâche s'accomplit de la façon suivante :
  1. Elle déclare la propriété size qui servira par la suite à déterminer la taille de chaque forme.
  2. Elle déclare les propriétés qui définissent la couleur de fond sur orange, la couleur de bordure sur gris foncé, la taille de la bordure sur 0 pixel, le rayon de l'angle sur 9 pixels et définit l'espace entre le bord de la scène et les autres objets sur 5 pixels.
  3. Elle utilise les propriétés déclarées au cours des étapes précédentes, ainsi que les méthodes intégrées de la classe Graphics pour dessiner le cercle, le rectangle arrondi et le carré aux coordonnées x = 0, y = 0.
  4. Elle redessine les formes situées le long de la partie supérieure de la scène, en commençant par x = 5, y = 5, avec un espacement de 5 pixels entre les formes.
package {
    import flash.display.DisplayObject;
    import flash.display.Graphics;
    import flash.display.Shape;
    import flash.display.Sprite;

    public class GraphicsExample extends Sprite {
        private var size:uint         = 80;
        private var bgColor:uint      = 0xFFCC00;
        private var borderColor:uint  = 0x666666;
        private var borderSize:uint   = 0;
        private var cornerRadius:uint = 9;
        private var gutter:uint       = 5;

        public function GraphicsExample() {
            doDrawCircle();
            doDrawRoundRect();
            doDrawRect();
            refreshLayout();
        }

        private function refreshLayout():void {
            var ln:uint = numChildren;
            var child:DisplayObject;
            var lastChild:DisplayObject = getChildAt(0);
            lastChild.x = gutter;
            lastChild.y = gutter;
            for (var i:uint = 1; i < ln; i++) {
                child = getChildAt(i);
                child.x = gutter + lastChild.x + lastChild.width;
                child.y = gutter;
                lastChild = child;
            }
        }

        private function doDrawCircle():void {
            var child:Shape = new Shape();
            var halfSize:uint = Math.round(size / 2);
            child.graphics.beginFill(bgColor);
            child.graphics.lineStyle(borderSize, borderColor);
            child.graphics.drawCircle(halfSize, halfSize, halfSize);
            child.graphics.endFill();
            addChild(child);
        }

        private function doDrawRoundRect():void {
            var child:Shape = new Shape();
            child.graphics.beginFill(bgColor);
            child.graphics.lineStyle(borderSize, borderColor);
            child.graphics.drawRoundRect(0, 0, size, size, cornerRadius);
            child.graphics.endFill();
            addChild(child);
        }

        private function doDrawRect():void {
            var child:Shape = new Shape();
            child.graphics.beginFill(bgColor);
            child.graphics.lineStyle(borderSize, borderColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            addChild(child);
        }
    }
}