Uma vez que você tenha uma coleção de instâncias de IGraphicsData, use o método
drawGraphicsData()
da classe Graphics para renderizar os gráficos. O método
drawGraphicsData()
executa algumas instruções de desenho de um vetor de instâncias de IGraphicsData em ordem sequencial:
// stroke object
var stroke:GraphicsStroke = new GraphicsStroke(3);
stroke.joints = JointStyle.MITER;
stroke.fill = new GraphicsSolidFill(0x102020);// solid stroke
// fill object
var fill:GraphicsGradientFill = new GraphicsGradientFill();
fill.colors = [0x0000FF, 0xEEFFEE];
fill.matrix = new Matrix();
fill.matrix.createGradientBox(70, 70, Math.PI/2);
// path object
var path:GraphicsPath = new GraphicsPath(new Vector.<int>(), new Vector.<Number>());
path.commands.push(GraphicsPathCommand.MOVE_TO, GraphicsPathCommand.LINE_TO, GraphicsPathCommand.LINE_TO);
path.data.push(125,0, 50,100, 175,0);
// combine objects for complete drawing
var drawing:Vector.<IGraphicsData> = new Vector.<IGraphicsData>();
drawing.push(stroke, fill, path);
// draw the drawing
graphics.drawGraphicsData(drawing);
Modificando-se um valor no caminho usado pelo desenho do exemplo, é possível redesenhar a forma várias vezes para uma imagem mais complexa:
// draw the drawing multiple times
// change one value to modify each variation
graphics.drawGraphicsData(drawing);
path.data[2] += 200;
graphics.drawGraphicsData(drawing);
path.data[2] -= 150;
graphics.drawGraphicsData(drawing);
path.data[2] += 100;
graphics.drawGraphicsData(drawing);
path.data[2] -= 50;graphicsS.drawGraphicsData(drawing);
Embora objetos IGraphicsData possam definir estilos de preenchimento e de traçado, esses estilos não são obrigatórios. Em outras palavras, os métodos da classe Graphics podem ser usados para definir estilos, enquanto os objetos IGraphicsData podem ser usados para desenhar uma coleção de caminhos salvos ou vice-versa.
Nota:
Use o método
Graphics.clear()
para remover um desenho anterior antes de começar um novo, a menos que você esteja aumentando o desenho original, como visto no exemplo acima. Quando alterar uma única parte de um caminho ou de uma coleção de objetos IGraphicsData, redesenhe o desenho inteiro para ver as alterações.
Quando são usadas classes de dados gráficos, o preenchimento é renderizado sempre que três ou mais pontos são desenhados porque a forma é inerentemente fechada nesse ponto. Embora o preenchimento seja fechado, o traçado não é, e esse comportamento é diferente de quando são usados vários comandos
Graphics.lineTo()
ou
Graphics.moveTo()
.