Avant de démarrer...

...vous pouvez jeter un oeil sur le billet AS2 concernant l'api de dessin ! Il faut aussi savoir certaines petites choses concernant l'AS3 : "_x" devient "x", "_root" devient "root", etc...

La création de forme en AS3

la création dynamique de forme en AS3 nécessite 2 classes : Shape et Graphics, distribué dans le package flash.display. Contrairement à l'AS2, les méthodes de création de forme (lineStyle, moveTo, ...) ne sont plus ratachées à l'objet MovieClip, mais à un objet Graphics. L'objet Shape est le "conteneur". Il suffit, en AS3, d'invoquer la méthode addChild (:displayObject) pour afficher l'objet sur la scène.

Code source

  1. // Importation des classes Shape et Graphics
  2. // pour la création de forme
  3. import flash.display.Shape;
  4. import flash.display.Graphics;
  5.  
  6. // Création du conteneur de la forme dynamique
  7. var form:Shape = new Shape();
  8.  
  9. // Déclaration du tableau
  10. var tab:Array = new Array();
  11. // Ajout des Object vecteur
  12. tab = [
  13. {px:200, py:300, cx:200, cy:200},
  14. {px:300, py:400, cx:200, cy:400},
  15. {px:450, py:450},
  16. {px:400, py:300, cx:400, cy:400},
  17. {px:450, py:220},
  18. {px:300, py:200, cx:400, cy:200},
  19. {px:150, py:150, cx:250, cy:200}
  20. ];
  21.  
  22. // Non obligatoire : efface toutes formes préalablement
  23. // créer avec l’api de dessin
  24. form.graphics.clear();
  25. // Définition de la ligne (taille=1, couleur=#333333, alpha=100)
  26. form.graphics.lineStyle(1, 0x333333, 100);
  27. // Définition du fond (couleur=#F7F7F7, alpha=100)
  28. form.graphics.beginFill(0xF7F7F7, 100);
  29.  
  30. // Définition du point d’origine
  31. form.graphics.moveTo(tab[tab.length-1].px, tab[tab.length-1].py);
  32.  
  33. // Passage dans les lignes du tableau
  34. for (var i=0; i<tab.length; i++){
  35. // Si le point de control cx n'est pas définit,
  36. // on applique un lineTo, sinon un curveTo
  37. tab[i].cx == undefined ?
  38. form.graphics.lineTo(tab[i].px, tab[i].py) :
  39. form.graphics.curveTo(tab[i].cx, tab[i].cy, tab[i].px, tab[i].py);
  40. }
  41.  
  42. // Définit la fin de la forme
  43. form.graphics.endFill();
  44.  
  45. // Affichage de l'object form
  46. addChild(form);

Quelques liens pour aller plus loin :