Rysowanie ścieżek

Flash Player 10 i nowsze wersje, Adobe AIR 1.5 i nowsze wersje

W sekcji dotyczącej rysowania linii prostych i krzywych (patrz Rysowanie linii i krzywych ) przedstawiono polecenia służące do rysowania pojedynczych linii ( Graphics.lineTo() ) lub krzywych ( Graphics.curveTo() ) oraz przemieszczania linii do innego punktu ( Graphics.moveTo() ) w celu uzyskania kształtu. Parametrami metod Graphics.drawPath() i Graphics.drawTriangles() mogą być zestawy obiektów reprezentujące polecenia rysowania. Korzystając z tych metod, można w ramach jednej instrukcji wydać szereg poleceń Graphics.lineTo() , Graphics.curveTo() lub Graphics.moveTo() , które ma wykonać środowisko wykonawcze Flash.

Klasa wyliczeniowa GraphicsPathCommand definiuje zestaw stałych odpowiadających poleceniom rysowania. Metoda Graphics.drawPath() przyjmuje jako parametr serię tych stałych (opakowanych w wystąpienie klasy Vector). Następnie, za pomocą jednego polecenia, można narysować cały kształt lub kilka kształtów. Można również modyfikować wartości przekazywane do tych metod i w ten sposób zmieniać już istniejące kształty.

Oprócz obiektu Vector zawierającego polecenia rysowania metoda drawPath() wymaga podania zestawu współrzędnych dla poszczególnych poleceń rysowania. Utwórz wystąpienie klasy Vector zawierające współrzędne (wystąpienia klasy Number) i przekaż je jako drugi argument ( data ) do metody drawPath() .

Uwaga: Wartości w wektorze nie są obiektami Point; wektor jest szeregiem liczb, a każda para liczb reprezentuje parę współrzędnych x/y.

Metoda Graphics.drawPath() dopasowuje poszczególne polecenia do odpowiednich danych punktów (zbioru dwóch lub czterech liczb) w celu wygenerowania ścieżki w obiekcie 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); 
        } 
    } 
}