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);
}
}
}