« Flash AS3 - Chargement de fichiers SWF et d'images » : différence entre les versions
Aller à la navigation
Aller à la recherche
m (using an external editor) |
|||
Ligne 25 : | Ligne 25 : | ||
Si vous voulez repositionner l'image et/ou changer ses dimensions: | Si vous voulez repositionner l'image et/ou changer ses dimensions: | ||
[http://tecfa.unige.ch/guides/flash/ex5/loader/flash-cs5-load-external-pictures-2.fla flash-cs5-load-external-pictures-2.fla] | |||
[http://tecfa.unige.ch/guides/flash/ex5/loader/flash-cs5-load-external-pictures-2.swf flash-cs5-load-external-pictures-2.swf] | |||
<source lang="actionscript"> | <source lang="actionscript"> | ||
// Load the picture | // Load the picture | ||
Ligne 47 : | Ligne 50 : | ||
=== Charger plusieurs images === | === Charger plusieurs images === | ||
* [http://tecfa.unige.ch/guides/flash/ex5/loader/flash-cs5-load-external-pictures-3.fla flash-cs5-load-external-pictures-3.fla] | |||
* [http://tecfa.unige.ch/guides/flash/ex5/loader/flash-cs5-load-external-pictures-3.swf flash-cs5-load-external-pictures-3.swf] | |||
A mon avis, il est difficile de charger des images en parallèle, donc je le charge une après les autres. Une fois une image chargé on lance le chargement du suivant etc. C'est le boulot de la fonction "pict_is_loaded". | A mon avis, il est difficile de charger des images en parallèle, donc je le charge une après les autres. Une fois une image chargé on lance le chargement du suivant etc. C'est le boulot de la fonction "pict_is_loaded". | ||
<source lang="actionscript"> | |||
// adapt the next two lines for your needs | |||
// | |||
var picture_name_list = ["mad1","mad2","mad3","mad4","mad5","mad6","mad7","mad8","mad9"]; | var picture_name_list = ["mad1","mad2","mad3","mad4","mad5","mad6","mad7","mad8","mad9"]; | ||
var directory = "pics"; | var directory = "pics"; | ||
Ligne 119 : | Ligne 124 : | ||
} | } | ||
} | } | ||
</source> | |||
== Charger un swf == | == Charger un swf == |
Version du 10 novembre 2010 à 21:32
Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.
Introduction
En ActionScript 3.0, les fichiers SWF ainsi que les images sont chargés avec la classe Loader. Pour charger un fichier SWF externe, vous devez définir quatre étapes en ActionScript :
- Créer un objet URLRequest avec l'adresse URL du fichier.
- Créer un objet Loader.
- Appeler la méthode load() de l'objet Loader en lui passant en paramètre l'occurrence de l'objet URLRequest.
- Appeler la méthode addChild() pour un conteneur d'objet d'affichage. Autrement dit, vous devez ajouter l'instance crée de l'objet chargé à un objet de type "conteneur" (DisplayObject). Typiquement, on ajoute un élément à la timeline principale.
Charger une image
Le principe
Code exemple simple
var request:URLRequest = new URLRequest("image.jpg");
var loader:Loader = new Loader()
loader.load(request);
addChild(loader);
Si vous voulez repositionner l'image et/ou changer ses dimensions: flash-cs5-load-external-pictures-2.fla flash-cs5-load-external-pictures-2.swf
// Load the picture
var request:URLRequest = new URLRequest("pics/mad1.jpg");
var loader:Loader = new Loader()
loader.load(request);
// Manage the event that picture is loaded
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, pict_is_loaded)
// position, resize and then add to the scene
function pict_is_loaded (e:Event) {
var pict = loader.content;
pict.x = 100;
pict.y = 100;
pict.width = 224;
pict.height = 168;
addChild(pict);
// trace (loader.content);
}
Charger plusieurs images
A mon avis, il est difficile de charger des images en parallèle, donc je le charge une après les autres. Une fois une image chargé on lance le chargement du suivant etc. C'est le boulot de la fonction "pict_is_loaded".
// adapt the next two lines for your needs
var picture_name_list = ["mad1","mad2","mad3","mad4","mad5","mad6","mad7","mad8","mad9"];
var directory = "pics";
// global variables
var picture_list = new Array();
var total_pictures = picture_name_list.length;
var loader:Loader = new Loader();
var pictures_loaded = 0;
// call the load_image function with the first picture
load_image(picture_name_list[0]);
// This function will load a picture (well just start loading it)
function load_image(img_name)
{
var request:URLRequest = new URLRequest(directory + "/" + img_name + ".jpg");
loader.load(request);
}
// Manage the event that one picture is loaded
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, pict_is_loaded);
// position, resize and then add to the list of pictures;
function pict_is_loaded(e:Event)
{
var pict = e.target.content;
// insert the picture into an array for display once we loaded all
picture_list.push(pict);
// increment picture count;
pictures_loaded++;
// load pictures one by one
if (pictures_loaded < total_pictures)
{
load_image(picture_name_list [pictures_loaded]);
}
else
{
// means we are done loading and can call the rendering function
render_pictures();
}
}
function render_pictures()
{
var layer:int = -1;
var pict:Bitmap;
for (var i:int=0; i < total_pictures; i++)
{
// get a picture from the list and resize it
pict = picture_list[i];
pict.width = 224;
pict.height = 168;
// this is code to display pictures in columns of 3
var posi = i % 3;
if (posi == 0)
{
layer = layer + 1;
}
pict.x = posi * pict.width;
pict.y = layer * pict.height;
//trace(pict + "x=" + pict.x + ",y=" + pict.y);
// positioned pictures are then added to the stage
addChild (pict);
}
}
Charger un swf
Code exemple
var request:URLRequest = new URLRequest("externalSwf.swf");
var loader:Loader = new Loader()
loader.load(request);
addChild(loader);