Easy-Micro

ESPACEMEMBRE ActionScript
Photos

Créer et remplir un clip dynamiquement

Charger des photos en AS3 (depuis un dossier externe)
Le chargement d'images ou de swf dans Flash va se faire grâce à deux nouvelles classes AS3 : Loader et URLRequest. La classe Loader va nous permettre de créer un conteneur de chargement. La classe URLRequest va nous permettre de définir l'url absolue ou relative du fichier à charger.

Charger des images gif, jpeg, png ou des swf (AS3)

// création du conteneur de l'image ou du swf
var conteneurImage:Loader = new Loader();

// url de l'image ou du swf à charger
var image:URLRequest = new URLRequest("logo/logo.gif");

// chargement de l'image ou du swf dans le conteneur
conteneurImage.load(image);

// affichage du conteneur
this.addChild(conteneurImage);

Le chargement se fera grâce à la méthode load() de l'objet loader. L'affichage de l'image ou du swf se fera grâce à la méthode addChild(). La classe MovieClipLoader est remplacé par la classe Loader. De même que la classe LoadVars est remplacé par la classe URLLoader.

Il est à noter que cela fonctionne même si l'on charge un fichier swf qui contient du code AS1 ou AS2, car le Flash Player 9 intègre l'AVM 1 (ActionScript Virtual Machine 1), qui interprète le code AS1 et AS2, ainsi que l'AVM 2 qui interprète le code AS3.

Exemple de chargement de plusieurs images - AS3
Chaques images est nommée par un numéro (de 0.png à n.png)

for (var i:int = 0; i < 5; i++) {

// chargement des images dans un loader
var conteneurImage:Loader = new Loader();
var image:URLRequest = new URLRequest("images/"+i+".png");
conteneurImage.load(image);

// on cré un clip
var mc = new MovieClip();
mc.graphics.beginFill(0x000088); // remplissage d'un fond de couleur (tjours devant drawRect)
mc.graphics.drawRect(0, 0, 100, 43); // drawRect(pos. horizontal, pos. vertical, largeur, hauteur)
this.addChild(mc);

// on met le loader dans le clip
mc.addChild(conteneurImage);

// positionement du clip en décalé
mc.x += mc.width * (i-1);
mc.y = 50;

}

Petit plus :
Un petit trait blanc de séparation entre les clips (facultatif).
A rajouter en bas du code précédent - dans la boucle for :

var bigclip = new MovieClip();
bigclip.graphics.beginFill(0xffffff);
bigclip.graphics.drawRect(0, 0, 5, mc.height);
addChild(bigclip);

bigclip.x = mc.x;
bigclip.y = 50;

Astuce: Le cadre réalisé avec la méthode drawRect (de l'objet graphics) doit être aussi haut que les images chargées et un petit peu plus large de manière à faire apparaitre le fond de couleur.


< Page précédente ACTIONSCRIPT