當您擁有一組 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()
命令時不同。