Disegno di forme mediante metodi incorporatiFlash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive Per comodità, quando si disegnano forme comuni come cerchi, ellissi, rettangoli e rettangoli arrotondati, ActionScript 3.0 fornisce dei metodi che disegnano tali forme automaticamente. Si tratta dei metodi drawCircle(), drawEllipse(), drawRect() e drawRoundRect() della classe Graphics. Questi metodi possono essere utilizzati al posto dei metodi lineTo() e curveTo(). Notate tuttavia che è comunque necessario specificare gli stili di linea e di riempimento prima di chiamare questi metodi. L'esempio seguente ricrea l'esempio dei quadrati rossi, verdi e blu con una larghezza e un'altezza di 100 pixel. Questo codice utilizza il metodo drawRect(), inoltre specifica che il colore di riempimento ha un valore alfa del 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); In un oggetto Sprite o MovieClip, il contenuto del disegno creato con la proprietà graphics viene sempre visualizzato dietro tutti gli oggetti di visualizzazione secondari che sono contenuti nell'oggetto. Inoltre, il contenuto della proprietà graphics non è un oggetto di visualizzazione separato, pertanto non compare nell'elenco degli elementi secondari di un oggetto Sprite o MovieClip. Ad esempio, per l'oggetto Sprite seguente viene disegnato un cerchio con la relativa proprietà graphics e per esso è presente un oggetto TextField nell'elenco degli oggetti di visualizzazione secondari: 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); Notate che l'oggetto TextField compare sopra il cerchio disegnato con l'oggetto Graphics. |
|