Para sua conveniência, ao desenhar formas comuns como círculos, elipses, retângulos e retângulos com cantos arredondados, o ActionScript 3.0 tem métodos que desenham essas formas comuns para você. Estes são os métodos
drawCircle()
,
drawEllipse()
,
drawRect()
e
drawRoundRect()
da classe Graphics. Esses métodos também podem ser utilizados no lugar dos métodos
lineTo()
e
curveTo()
. Observe, entretanto, que você ainda deve especificar os estilos de linha e preenchimento antes de chamar esses métodos.
O exemplo a seguir recria o exemplo de desenho de quadrados vermelho, verde e azul com largura e altura de 100 pixels. Esse código usa o método
drawRect()
e, além disso, especifica que a cor de preenchimento tem um alfa de 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);
Em um objeto Sprite ou MovieClip, o conteúdo de desenho criado com a propriedade
graphics
sempre aparece atrás de todos os objetos display filhos contidos no objeto. Além disso, o conteúdo da propriedade
graphics
não é um objeto display separado; portanto ele não aparece na lista de filhos do objeto Sprite ou MovieClip. Por exemplo, o seguinte objeto Sprite tem um círculo desenhado com sua propriedade
graphics
e um objeto TextField em sua lista de objetos display filhos:
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);
Observe que TextField aparece na parte superior do círculo desenhado com o objeto graphics.