Passage de AS 2.0 à AS 3.0 - 2ème partie
Une nouveauté de l'actionscript 3.0, et qu'au début on a souvent tendance à oublier, est la liste d'affichage, ou Display List. En actionscript 2.0, lorsqu'on créait un objet en actionscript, ce dernier était tout de suite visible et utilisable sur la scène. Même si en actionscript 3.0, la création d'objets visuels par actionscript est beaucoup plus logique, il n'est pas affiché sur la scène. Ceci est dû à la Liste d'Affichage.
En actionscript 3.0, les objets ne sont pas forcément visible, même s'ils sont existant. La raison est qu'à présent on peut faire vivre des objets, les manipuler et les afficher qu'au moment voulu, ce qui optimise les performances. Cette méthode est plus efficace que la propriété "visible". Imaginez pouvoir charger une dizaine d'images, de les positionner, mais sans prendre de la mémoire pour l'affichage. Puis, au moment voulu, d'afficher tout d'un coup.
Il est vrai que, dans beaucoup, voir la majorité des cas, ce n'est pas forcément nécessaire. Mais il est important de le comprendre et de savoir comment ça fonctionne.
Pour rendre un objet visible, il faut l'ajouter à la Liste d'Affichage d'un objet. Cet objet peut être un Sprite, un MovieClip, la scène, ou tout objet qui peut contenir des enfants. On appelle la méthode addChild() de ces objets.
Créons un nouveau MovieClip "my_mc", et ajoutons le à la scène:
var my_mc:MovieClip = new MovieClip();
my_mc.x = 20;
my_mc.y = 40; // là, notre objet n'est toujours pas affiché
stage.addChild(my_mc); // là, notre objet est affiché, à la position x:20 et y:40
Ou, si on voulait l'ajouter à un MovieClip "container_mc" déjà présent sur la scène:
var my_mc:MovieClip = new MovieClip();
my_mc.x = 20;
my_mc.y = 40; // là, notre objet n'est toujours pas affiché
container_mc.addChild(my_mc); // là, notre objet est affiché, à la position x:20 et y:40 au sein de container_mc
