패스 그리기

Flash Player 10 이상, Adobe AIR 1.5 이상

선 및 곡선 그리기에 대한 단원( 선 및 곡선 그리기 참조)에서는 단일 선( Graphics.lineTo() ) 또는 곡선( Graphics.curveTo() )을 그린 다음 해당 선을 다른 지점( Graphics.moveTo() )으로 이동하여 모양을 형성하기 위한 명령을 소개했습니다. Graphics.drawPath() Graphics.drawTriangles() 메서드는 매개 변수와 동일한 드로잉 명령을 나타내는 객체 집합을 허용합니다. 이 메서드를 사용하면 일련의 Graphics.lineTo() , Graphics.curveTo() 또는 Graphics.moveTo() 명령을 제공하여 Flash 런타임을 단일 명령문으로 실행할 수 있습니다.

GraphicsPathCommand 열거형 클래스는 드로잉 명령에 해당하는 상수 집합을 정의합니다. Vector 인스턴스에서 래핑되는 이 상수 집합을 Graphics.drawPath() 메서드의 매개 변수로 전달합니다. 그러면 단일 명령을 사용하여 한 모양 전체 또는 몇 개 모양을 렌더링할 수 있습니다. 이러한 메서드에 전달되는 값을 변경하여 기존 모양을 변경할 수도 있습니다.

drawPath() 메서드는 드로잉 명령의 Vector 외에도 각 드로잉 명령의 좌표에 해당하는 좌표 집합이 필요합니다. 좌표(Number 인스턴스)가 포함된 Vector 인스턴스를 만들고 이를 drawPath() 메서드에 두 번째( data ) 인수로 전달합니다.

참고: 벡터의 값은 Point 객체가 아니고, 벡터는 일련의 숫자이며 두 개의 숫자로 된 각 그룹이 x/y 좌표 쌍을 나타냅니다.

Graphics.drawPath() 메서드는 각 명령을 해당 점 값(두 개 또는 네 개의 숫자로 된 컬렉션)과 대응시켜 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); 
        } 
    } 
}