Руководство по actionscript. часть 5, стр. 009
Для рисования различных видов прямоугольников и эллипсов класс Graphics предоставляет следующие удобные методы: drawCircle ( ), drawEllipse ( ), drawRect ( ), drawRoundRect ( ) и drawRoundRectComplex ( ). Методы round rect рисуют прямоугольники с закругленными углами. Все методы, упрощающие рисование фигур, используются совместно с уже знакомыми вам методами lineStyle ( ) и beginFill ( ). Тем не менее вызывать метод endFill ( )
Рис. 25.4. Треугольник
Рис. 25.5. Треугольник со скошенными соединениями
после завершения рисования фигуры необязательно, поскольку каждый из перечисленных методов делает это автоматически.
Следующий код демонстрирует общий подход к использованию методов для рисования фигур. В нем применяется мет;од drawRect ( ) для рисования прямоугольника синего цвета с контуром толщиной 1 пиксел черного цвета:
var canvas:Shape = new Shape( ): addChi1d(canvas);
// Устанавливаем толщину, равную одному пикселу
canvas. graphi cs.1i neStyle(1):
// Устанавливаем синий цвет заливки
canvas. graphics. beginFi11(OxOOOOFF);
// Рисуем фигуру
canvas. graphics. drawRect(0, 0, 150, 75):
//Обратите внимание на отсутствие вызова метода endFilK )
Удаление векторного содержимого
Для удаления всего векторного содержимого из объекта применяется метод экземпляра clear ( ) класса Graphics. Например:
var canvas:Shape = new Shape( ): // Рисуем линию
canvas. graphics. lineStyle(3, OxOOOOFF): // Применяем контур синего цвета canvas. graphics. lineTo(25, 35): addChild(canvas):
// Удаляем линию canvas. graphics. clear( ):
Когда происходит вызов метода clear ( ), стиль линий объекта возвращается к значению undefined (без контура). После вызова метода clear ( ) метод lineStyle ( ) должен быть вызван снова, иначе у линий и фигур будет отсутствовать контур. Вызов метода с 1 е а г ( ) также сбрасывает позицию чертежного пера в точку (0; 0). Стоит отметить, что этот метод влияет на векторное содержимое только одного объекта. Если данный объект является экземпляром класса Sprite или MovieClip, то метод clear ( ) не удалит ни векторное содержимое в его дочерних объектах, ни сами дочерние объекты.