Rita banor

Flash Player 10 och senare, Adobe AIR 1.5 och senare

I avsnittet om att rita linjer och kurvor (se Rita linjer och kurvor ) introduceras kommandon för att rita en enskild linje ( Graphics.lineTo() ) eller kurva ( Graphics.curveTo() ) och sedan flytta linjen till en annan punkt ( Graphics.moveTo() ) för att skapa en form. Metoderna Graphics.drawPath() och Graphics.drawTriangles() accepterar en uppsättning med objekt som motsvarar samma ritkommandon som en parameter. Med de här metoderna kan du skapa en serie av Graphics.lineTo() -, Graphics.curveTo() - eller Graphics.moveTo() -kommandon som Flash-miljön kör i en enda sats.

Uppräkningsklassen GraphicsPathCommand definierar en uppsättning konstanter som motsvarar ritkommandon. Du skickar en serie med dessa konstanter (omslutna av en Vector-instans) som en parameter för metoden Graphics.drawPath() . Sedan kan du med ett enda kommando återge hela formen eller flera former. Du kan också ändra värdena som skickas till dessa metoder om du vill ändra en befintlig form.

Utöver vektorn med ritkommandon behöver metoden drawPath() även en uppsättning koordinater som motsvarar koordinaterna för varje enskilt ritkommando. Skapa en Vector-instans som innehåller koordinater (Number-instanser) och skicka den till metoden drawPath() som det andra ( data )-argumentet.

Obs! Värdena i vektorn är inte Point-objekt. Vektorn är en serie siffror där varje grupp med två siffror representerar ett par med x/y-koordinater.

Metoden Graphics.drawPath() matchar varje kommando mot respektive punktvärde (en mängd med två eller flera siffror) för att skapa en bana i Graphics-objektet:

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