In de sectie over het tekenen van lijnen en curven (zie
Lijnen en curven tekenen
) zijn de opdrachten geïntroduceerd voor het tekenen van één lijn (
Graphics.lineTo()
) of curve (
Graphics.curveTo()
) en het verplaatsen van de lijn naar een ander punt (
Graphics.moveTo()
) om een vorm te creëren. De methoden
Graphics.drawPath()
en
Graphics.drawTriangles()
accepteren een set met objecten die dezelfde tekenopdrachten vertegenwoordigen als een parameter. Met deze methoden kunt u een reeks opdrachten
Graphics.lineTo()
,
Graphics.curveTo()
of
Graphics.moveTo()
opgeven die de Flash-runtime in één instructie kan uitvoeren.
De opsommingsklasse
GraphicsPathCommand
definieert een set met constanten die overeenstemmen met tekenopdrachten. U stuurt een reeks van deze constanten (ingepakt in een Vector-instantie) door als een parameter voor de
Graphics.drawPath()
-methode. Daarna kunt u met één opdracht een gehele vorm of meerdere vormen renderen. U kunt ook de waarden wijzigen die aan deze methoden zijn doorgegeven, om een bestaande vorm te wijzigen.
Naast de Vector met tekenopdrachten heeft de
drawPath()
-methode een set met coördinaten nodig die overeenstemmen met de coördinaten voor elke tekenopdracht. Maak een Vector-instantie die coördinaten (Number-instanties) bevat en stuur deze door naar de
drawPath()
-methode als het tweede (
data
)-argument.
Opmerking:
De waarden in de vector zijn geen Point-objecten. De vector is een reeks getallen waarbij telkens twee getallen een x/y-coördinaat vormen.
De methode
Graphics.drawPath()
vergelijkt elke opdracht met de respectieve puntwaarden (een verzameling van twee of vier getallen) om een pad te genereren in het Graphics-object:
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);
}
}
}