Создав набор экземпляров IGraphicsData, можно начинать визуализацию графики с помощью метода
drawGraphicsData()
класса Graphics. Метод
drawGraphicsData()
выполняет набор инструкций рисования из векторного массива экземпляров IGraphicsData в последовательном порядке:
// 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);
Изменяя одно значение в контуре, используемом рисунком в примере, можно нарисовать фигуру несколько раз для получения более сложного изображения.
// 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);
Хотя объекты IGraphicsData могут определять стили заливки и обводки, использование этих стилей не является обязательным. Другими словами, методы класса Graphics можно использовать для определения стилей, а объекты IGraphicsData — для рисования сохраненной коллекции контуров и наоборот.
Примечание.
Метод
Graphics.clear()
используется для удаления предыдущего рисунка перед началом выполнения нового, если не предусмотрено дополнение к исходному рисунку, как показано в примере выше. При изменении одной части контура или коллекции объектов IGraphicsData, требуется нарисовать заново весь рисунок, чтобы увидеть изменения.
При использовании классов графических данных заливка визуализируется всегда, когда рисуется три или более точек, так как на этом этапе фигура по определению имеет закрытый контур. Несмотря на то, что заливка закрывается, обводка остается открытой, и такое поведение отличается от поведения при использовании нескольких команд
Graphics.lineTo()
и
Graphics.moveTo()
.