В разделе о рисовании линий и кривых (см.
Создание линий и кривых
) представлены команды для рисования одной линии (
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);
}
}
}