繪製路徑

Flash Player 10 以及更新的版本,Adobe AIR 1.5 以及更新的版本

有關繪製線段和曲線的章節 (請參閱 繪製線段和曲線 ) 中介紹了下列命令:用於繪製單一線段的命令 ( Graphics.lineTo() )、用於繪製單一曲線的命令 ( Graphics.curveTo() ),以及將線段移至另一點以形成圖形的命令 ( Graphics.moveTo() )。 Graphics.drawPath() Graphics.drawTriangles() 方法都可接受一組代表那些相同繪圖命令的物件做為參數。透過這些方法,您可以提供一連串的 Graphics.lineTo() Graphics.curveTo() Graphics.moveTo() 命令給 Flash 執行階段在單一陳述式中執行。

GraphicsPathCommand 列舉類別會定義一組對應至繪圖命令的常數。您可以傳遞一連串的常數 (包裝在 Vector 實體中) 做為 Graphics.drawPath() 方法的參數。然後再透過單一命令,顯示整個形狀或數個形狀。此外,您也可以改變傳遞至這些方法的值,以變更現有形狀。

除了繪圖命令的向量以外, drawPath() 方法還需要一組座標,而且該座標對應至每個繪圖命令的座標。請建立包含座標 (Number 實體) 的 Vector 實體,並傳遞至 drawPath() 方法做為第二個 ( data ) 引數。

備註: 向量中的這些值都不是 Point 物件,因為向量是一系列數字,其中每兩個數字一組,即可表示一組 x/y 座標。

Graphics.drawPath() 方法會使每個命令符合其個別的座標點值 (兩個或四個為一組的數字),以便於 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); 
        } 
    } 
}