Caminhos de desenho

Flash Player 10 e posterior, Adobe AIR 1.5 e posterior

A seção sobre como desenhar linhas e curvas (consulte Desenho de linhas e curvas ) apresentou os comandos usados para desenhar uma única linha ( Graphics.lineTo() ) ou curva ( Graphics.curveTo() ) e mover a linha até outro ponto ( Graphics.moveTo() ) para obter uma forma. Os métodos Graphics.drawPath() e Graphics.drawTriangles() aceitam um conjunto de objetos que representam os mesmos comandos de desenho como um parâmetro. Pelo uso desses métodos, você pode fornecer uma série de comandos Graphics.lineTo() , Graphics.curveTo() ou Graphics.moveTo() para que o runtime do Flash seja executado em uma única instrução.

A classe de enumeração GraphicsPathCommand define algumas constantes para comandos de desenho. Você transmite algumas dessas constantes (dispostas em uma instância de Vector) como um parâmetro para o método Graphics.drawPath() . Em seguida, com um único comando, você pode renderizar uma forma inteira ou várias formas. Também é possível alterar os valores transmitidos para esses métodos a fim de alterar uma forma existente.

Além do Vector de comandos de desenho, o método drawPath() precisa de algumas coordenadas que correspondam às coordenadas de cada comando de desenho. Crie uma instância de Vector contendo as coordenadas (ocorrências de Number) e transmita-a para o método drawPath() como o segundo argumento ( data ) .

Nota: Os valores do vetor não são objetos Point; o vetor consiste em uma série de números em que cada grupo de dois números representa um par de coordenadas x/y.

O método Graphics.drawPath() compara cada comando com seus respectivos valores de ponto (uma coleção de dois ou quatro números) para gerar um caminho no 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); 
        } 
    } 
}