Создание контуров

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() . Затем с помощью одной команды можно выполнить визуализацию всей фигуры или сразу нескольких фигур. Также можно изменять значения, передаваемые этим методам, для изменения существующей фигуры.

В дополнение к командам рисования в виде Vector, методу drawPath() требуется набор координат, соответствующих координатам для каждой из команд рисования. Следует создать экземпляр Vector, содержащий координаты (экземпляры Number) и передать его методу drawPath() в качестве второго аргумента ( data ).

Примечание. Значения в объекте Vector не являются объектами Point. Вектор — это последовательность чисел, где каждая группа из двух чисел представляет пару координат х и у.

Метод 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); 
        } 
    } 
}