La sezione sul disegno di linee e curve (vedete
Disegno di linee e curve
) introduce i comandi per il disegno di una linea (
Graphics.lineTo()
) o curva (
Graphics.curveTo()
) singola e quindi per lo spostamento della linea in un altro punto (
Graphics.moveTo()
) per creare una forma. I metodi
Graphics.drawPath()
e
Graphics.drawTriangles()
accettano un set di oggetti che rappresentano gli stessi comandi di disegno come parametro. Con questi metodi, potete fornire una serie di comandi
Graphics.lineTo()
,
Graphics.curveTo()
o
Graphics.moveTo()
per il runtime di Flash da eseguire in una singola istruzione.
La classe di enumerazione
GraphicsPathCommand
definisce un set di costanti che corrisponde ai comandi di disegno. Potete passare una serie di queste costanti (racchiuse in un'istanza Vector) come parametro per il metodo
Graphics.drawPath()
. Quindi, con un singolo comando, potete eseguire il rendering di un'intera forma o di diverse forme. Potete inoltre alterare i valori passati a questi metodi per modificare una forma esistente.
Oltre al Vector dei comandi di disegno, il metodo
drawPath()
necessita di un set di coordinate per ciascun comando di disegno. Create un'istanza Vector contenente coordinate (istanze Number) e passatela al metodo
drawPath()
come secondo argomento (
dati
).
Nota:
i valori nel vettore non sono oggetti Point; il vettore è una serie di numeri in cui ogni gruppo di due numeri rappresenta una coppia di coordinate x/y.
Il metodo
Graphics.drawPath()
associa ciascun comando ai rispettivi valori in punto (una raccolta di due o quattro numeri) per generare un tracciato nell'oggetto 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);
}
}
}