Voici comment je m'y prendrais. La seule chose que je n'ai pas faite est de changer la position des MovieClips après qu'ils soient chargés avec les images. Vous pouvez facilement ajouter cette fonctionnalité dans la fonction imageLoaded().
Placez le code suivant dans le panneau Actions de la première image d'un fichier FLA AS3. Cela suppose qu'un répertoire nommé 'images' existe dans le même répertoire que FLA/SWF.
//Create array of image filenames
var filenames:Array = new Array();
filenames[0] = 'some_image.jpg';
filenames[1] = 'some_other_image.jpg';
filenames[2] = 'and_another.jpg';
//Declare variables
const IMAGES_DIRECTORY:String = 'images/';
var loaders:Array = new Array();
var movieClips:Array = new Array();
//This function instantiates the exact number of Loader objects that are required
//and initiates the loading process for each image file. As each image is loaded,
//imageLoaded() is called
function createLoaders(filenamesAsArray:Array, directory:String):void
{
for(var i:int = 0; i < filenamesAsArray.length; i++)
{
loaders[i] = new Loader();
loaders[i].load(new URLRequest(directory + filenamesAsArray[i]));
loaders[i].contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
}
}
createLoaders(filenames, IMAGES_DIRECTORY);
//This function is called as each Loader object is completely loaded
//It creates each individual movieclip, adds the image to it, and then adds the MC to the stage
function imageLoaded(e:Event):void
{
if(e.target.content.bitmapData)
{
var mc:MovieClip = new MovieClip();
var bmp:Bitmap = new Bitmap(e.target.content.bitmapData);
mc.addChild(bmp);
movieClips.push(mc);
addChild(movieClips[movieClips.length - 1]);
}
}
A propos de l'importation de données XML
Regardez dans le XML Object.
Loading XML Exemple
Le document XML pour l'exemple:
<images>
<image>
<title>Portrait of a Woman</title>
<filename>portrait.jpg</filename>
</image>
<image>
<title>Rural Landscape</title>
<filename>landscape.jpg</filename>
</image>
<image>
<title>My Cat</title>
<filename>cat.jpg</filename>
</image>
</images>
AS3 pour le chargement du document XML ci-dessus
//Instantiate some objects (URLoader and XML)
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
//Listen for the instance of URLLoader (xmlLoader) to trigger Event.COMPLETE,
//which will call the function named 'loadXML()'
xmlLoader.addEventListener(Event.COMPLETE, loadXML);
//Initiate the process of loading the XML document
//In this case, 'test.xml' is located in the same directory as the SWF/FLA
//that this code is located in
xmlLoader.load(new URLRequest('test.xml'));
//This is the function that will be called by the event listener above (when
//the xmlLoader signals Event.COMPLETE
function loadXML(e:Event):void
{
//Retrieve the contents of the XML document
xmlData = new XML(e.target.data);
//Trace the entire document:
trace(xmlData);
//Trace the filename for the first <image> node
trace(xmlData.image[0].filename);
}
Bien sûr, votre document XML peut être très différent, dans ce cas, vous devez vous entraîner à récupérer l'information exacte que vous voulez. C'est la partie la plus délicate, à mon avis. En outre, vous voudriez instancier un tableau en dehors de la portée de la fonction loadXML
ci-dessus. Ensuite, remplissez récursivement le tableau avec les noms de fichiers du document XML.
J'attends votre message avec impatience, merci de votre intérêt. –
rapide réflexion sur ce que vous m'avez donné ici, merci btw. Dire que je voulais prendre l'image d'un fichier XML, au lieu de simplement les inclure dans le dossier/images et de les localiser de cette façon, cela serait-il possible? En organisant peut-être les images dans leur propre tableau? –
Voir les informations supplémentaires sur le chargement de XML que je viens d'ajouter. –