Tekenpaden

Flash Player 10 of hoger, Adobe AIR 1.5 of hoger

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