IGraphicsData 인스턴스의 컬렉션이 있는 경우 Graphics 클래스의
drawGraphicsData()
메서드를 사용하여 그래픽을 렌더링합니다.
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()
명령을 사용할 때와는 다릅니다.