Trazados de dibujo

Flash Player 10 y posterior, Adobe AIR 1.5 y posterior

La sección sobre dibujo de líneas y curvas (consulte Dibujo de líneas y curvas ) introdujo los comandos para dibujar una sola línea ( Graphics.lineTo() ) o curva ( Graphics.curveTo() ) y posteriormente mover la línea a otro punto ( Graphics.moveTo() ) para realizar una forma. Los métodos Graphics.drawPath() y Graphics.drawTriangles() aceptan un conjunto de objetos que representan los mismos comandos de dibujo que un parámetro. Con estos métodos se puede proporcionar una serie de comandos Graphics.lineTo() , Graphics.curveTo() o Graphics.moveTo() para que el motor de ejecución de Flash los ejecute en una sola sentencia.

La clase de enumeración GraphicsPathCommand define una serie de constantes que corresponden a comandos de dibujo. El usuario pasa una serie de estas constantes (agrupadas en una instancia de Vector) como parámetro para el método Graphics.drawPath() . Posteriormente con un solo comando puede representar una forma completa o varias formas. También puede modificar los valores transmitidos a estos métodos para modificar una forma existente.

Además del Vector de comandos de dibujo, el método drawPath() requiere una serie de coordenadas correspondientes a las de cada comando de dibujo. Cree una instancia de Vector que contenga coordenadas (instancias Number) y pásela al método drawPath() como segundo argumento ( data ).

Nota: los valores en el vector no son objetos Point; el vector es una serie de números donde cada grupo de dos números representa un par de coordenadas x/y.

El método Graphics.drawPath() hace coincidir cada comando con sus respectivos valores de coma (un conjunto de dos o cuatro números) para generar un trazado en el objeto 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); 
        } 
    } 
}