Formes graphiques
La gestion des formes graphiques ne change pas entre AS 2.0 et AS 3.0.
C’est plutôt la manière de les imbriquer et de les inter-positionner qui diffère.
- En savoir plus sur le site d’Adobe à propos de la classe graphics.
- Sur LiveDocs, la partie propre à BeginGradientFill
- Pour dessiner des boites arrondies ou des lignes en pointillés voir les deux classes DashedLine et Draw de Senocular et Tony.
- Bien qu’en AS 2.0, cet article de Ric Ewing sur Advanced drawing methods in Macromedia Flash MX n’est pas inintéressant.
Animation
Code
// Affichage
var sortie:TextField = new TextField()
sortie.x = 20
sortie.y = 180
sortie.height = 20
sortie.width = 300
this.addChild(sortie)
// Conteneur principal
var conteneur:Sprite = new Sprite()
this.addChild(conteneur)
// Création du conteneur pour le carré
var cc:Sprite = new Sprite()
cc.name = « Carre »
// Création de la couleur dégradée
var modeDegrade:String = GradientType.LINEAR;
var couleurs:Array = [0xFF0000, 0x00FF00, 0x0000FF];
var transparence:Array = [1, 1, 1];
var espacement:Array = [1, 100, 255];
var methodeEncre:String = SpreadMethod.PAD;
var matrice:Matrix = new Matrix()
matrice.createGradientBox(100,100,45)
// Création de la forme carré
var carre:Shape = new Shape()
carre.graphics.beginGradientFill(modeDegrade, couleurs, transparence, espacement,matrice);
carre.graphics.drawRect(0,0,100,100)
carre.x = 20
carre.y = 20
// Ajout des éléments sur la scène
cc.addChild(carre)
conteneur.addChild(cc)
// Création du conteneur pour le Rond
var cr:Sprite = new Sprite()
cr.name = « Rond »
// Création de la forme ronde
var rond:Shape = new Shape()
rond.graphics.beginFill(0x660033);
rond.graphics.drawCircle(100,100,50)
// Ajout des éléments sur la scène
cr.addChild(rond)
conteneur.addChild(cr)
// Création du conteneur pour le carré à coins arrondis
var ccr:Sprite = new Sprite()
ccr.name = « Carre Rond »
// Création de la forme carré à coins arrondis
var carrerond:Shape = new Shape()
carrerond.graphics.lineStyle(2,0×006633);
carrerond.graphics.beginFill(0x669900);
carrerond.graphics.drawRoundRect(80,80,100,100,10,10)
// Ajout des éléments sur la scène
ccr.addChild(carrerond)
conteneur.addChild(ccr)
// Création du conteneur pour l’ellipse
var ce:Sprite = new Sprite()
ce.name = « Ellipse »
// Création de la forme ellipse
var ellipse:Shape = new Shape()
ellipse.graphics.beginFill(0x996600);
ellipse.graphics.drawEllipse(20,80,80,100)
// Ajout des éléments sur la scène
ce.addChild(ellipse)
conteneur.addChild(ce)
// Création du conteneur pour le triangle
var ct:Sprite = new Sprite()
ct.name = « Triangle »
// Création de la forme triangle
var triangle:Shape = new Shape()
triangle.graphics.beginFill(0xFFCC00);
triangle.graphics.moveTo(100,20);
triangle.graphics.lineTo(200, 20);
triangle.graphics.lineTo(150, 120);
triangle.graphics.lineTo(100,20);
// Ajout des éléments sur la scène
ct.addChild(triangle)
conteneur.addChild(ct)
// Ajout de l’écouteur
function informe_action(evt:MouseEvent):void {
sortie.text = evt.target.name
var cible:DisplayObject = evt.target as DisplayObject
conteneur.setChildIndex(cible,conteneur.numChildren – 1)
}
conteneur.addEventListener(MouseEvent.MOUSE_DOWN,informe_action)