Desenho de formas utilizando os métodos incorporados

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

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.