Dessin de formes à l’aide des méthodes intégrées

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

Pour vous permettre de tracer plus commodément des formes courantes (cercles, ellipses, rectangles et rectangles à coins arrondis), ActionScript 3.0 comporte des méthodes qui tracent automatiquement ces formes. Ces méthodes sont drawCircle(), drawEllipse(), drawRect() et drawRoundRect(), et sont toutes définies dans la classe Graphics. Elles peuvent être utilisées à la place des méthodes lineTo() et curveTo(). Notez toutefois qu’il est nécessaire de spécifier des styles de ligne et de remplissage avant d’appeler ces méthodes.

L’exemple suivant dessine des carrés bleus, rouges et verts avec une largeur et une hauteur de 100 pixels. Ce code utilise la méthode drawRect() et spécifie que l’opacité de la couleur de remplissage est 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);

Dans un objet Sprite ou MovieClip, tout contenu graphique créé à l’aide de la propriété graphics apparaît toujours derrière les objets d’affichage enfant contenus par cet objet. Par ailleurs, le contenu créé avec la propriété graphics n’est pas un objet d’affichage séparé. Il n’apparaît donc pas dans la liste des enfants d’un objet Sprite ou MovieClip. Par exemple, l’objet Sprite suivant reçoit l’instruction de tracer un cercle avec sa propriété graphics, et un objet TextField figure dans sa liste d’objets d’affichage enfant :

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);

Notez que l’objet TextField apparaît au-dessus du cercle tracé avec la propriété graphics.