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