Tracés de dessin

Flash Player 10 et les versions ultérieures, Adobe AIR 1.5 et les versions ultérieures

La section sur le dessin de lignes et de courbes (voir Dessin de lignes et de courbes ) a présenté les commandes permettant de tracer une ligne ( Graphics.lineTo() ) ou courbe ( Graphics.curveTo() ) unique, puis de la déplacer vers un autre point ( Graphics.moveTo() ) pour obtenir une forme. Les méthodes Graphics.drawPath() et Graphics.drawTriangles() acceptent une série d’objets représentant ces mêmes commandes de dessin comme paramètre. Ces méthodes permettent de définir une série de commandes Graphics.lineTo() , Graphics.curveTo() ou Graphics.moveTo() traitées par le moteur d’exécution Flash en une seule instruction.

La classe d’énumération GraphicsPathCommand définit une série de constantes qui correspondent aux commandes de dessin. Vous transmettez une série de ces constantes (encapsulées dans une occurrence de Vector) comme paramètre de la méthode Graphics.drawPath() . Vous pouvez ensuite rendre une forme entière ou plusieurs formes à l’aide d’une seule commande. Vous pouvez aussi modifier les valeurs transmises à ces méthodes pour modifier une forme existante.

Outre l’occurrence Vector des commandes de dessin, la méthode drawPath() a besoin d’un ensemble de coordonnées qui correspondent aux coordonnées de chaque commande de dessin. Créez une occurrence de Vector contenant des coordonnées (instances de Number) et transmettez-la à la méthode drawPath() comme second argument ( data ).

Remarque : les valeurs du vecteur ne sont pas des objets Point. Le vecteur est une série de nombres, dont chaque paire représente une paire de coordonnées x/y.

La méthode Graphics.drawPath() fait correspondre chaque commande à ses valeurs de point respectives (une série de deux ou quatre nombres) pour générer un tracé dans l’objet Graphics :

package 
{ 
    import flash.display.*; 
     
    public class DrawPathExample extends Sprite 
    { 
        public function DrawPathExample(){ 
         
            var squareCommands:Vector.<int> = new Vector.<int>(5, true); 
            squareCommands[0] = GraphicsPathCommand.MOVE_TO; 
            squareCommands[1] = GraphicsPathCommand.LINE_TO; 
            squareCommands[2] = GraphicsPathCommand.LINE_TO; 
            squareCommands[3] = GraphicsPathCommand.LINE_TO; 
            squareCommands[4] = GraphicsPathCommand.LINE_TO; 
             
            var squareCoord:Vector.<Number> = new Vector.<Number>(10, true); 
            squareCoord[0] = 20; //x 
            squareCoord[1] = 10; //y 
            squareCoord[2] = 50; 
            squareCoord[3] = 10; 
            squareCoord[4] = 50; 
            squareCoord[5] = 40; 
            squareCoord[6] = 20; 
            squareCoord[7] = 40; 
            squareCoord[8] = 20; 
            squareCoord[9] = 10; 
         
            graphics.beginFill(0x442266);//set the color 
            graphics.drawPath(squareCommands, squareCoord); 
        } 
    } 
}