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);
}
}
}