Для удобства рисования в ActionScript 3.0 существуют методы для создания таких часто используемых фигур, как круги, эллипсы, прямоугольники и треугольники с закругленными углами. К этим методам относятся следующие методы класса Graphics:
drawCircle()
,
drawEllipse()
,
drawRect()
и
drawRoundRect()
. Эти методы можно использовать вместо методов
lineTo()
и
curveTo()
. Однако, следует отметить, что перед вызовом этих методов требуется указывать стили линий и заливок.
Следующий пример иллюстрирует создание красных, зеленых и синих квадратов высотой и шириной 100 пикселов. Этот код использует метод
drawRect()
и дополнительно указывает, что цвет заливки имеет альфа-значение, равное 50% (0,5):
var squareSize:uint = 100;
var square:Shape = new Shape();
square.graphics.beginFill(0xFF0000, 0.5);
square.graphics.drawRect(0, 0, squareSize, squareSize);
square.graphics.beginFill(0x00FF00, 0.5);
square.graphics.drawRect(200, 0, squareSize, squareSize);
square.graphics.beginFill(0x0000FF, 0.5);
square.graphics.drawRect(400, 0, squareSize, squareSize);
square.graphics.endFill();
this.addChild(square);
В объекте Sprite или MovieClip содержимое рисунка, созданное с помощью свойства
graphics
, всегда отображается позади всех дочерних объектов отображения, содержащихся в объекте. Кроме того, содержимое свойства
graphics
не является отдельным объектом отображения и отсутствует в списке дочерних объектов объекта Sprite или MovieClip. Например, следующий объект Sprite создает с помощью свойства
graphics
круг, а в списке дочерних объектов отображения содержит объект TextField:
var mySprite:Sprite = new Sprite();
mySprite.graphics.beginFill(0xFFCC00);
mySprite.graphics.drawCircle(30, 30, 30);
var label:TextField = new TextField();
label.width = 200;
label.text = "They call me mellow yellow...";
label.x = 20;
label.y = 20;
mySprite.addChild(label);
this.addChild(mySprite);
Следует отметить, что объект TextField отображается в верхней части круга, созданного с помощью графического объекта.