1 pièce(s) jointe(s)
AS3 chargement d'images aléatoire via XML
Bonjour à tous,
Je suis entrain de créer un puzzle avec 3 niveaux de difficulté et 3 images par niveaux qui doivent s'afficher aléatoirement mais étant débutant, je bloque à de nombreux endroit (surtout dans mon raisonnement), et dans un 1er temps sur le chargement dynamique d'image via mon fichier xml.
J'ai donc commencé par charger mon fichier xml et je bloque sur la manière de récupérer mes 20 images. Doit-je créer un tableau et si oui de quelle manière? Comment dois-je raisonner?
Vos lumières indulgentes me seront plus qu'utile. Merci d'avance.
Dans l'instant présent, j'ai l'erreur suivante : "1172: La définition flash.containers:UILoader est introuvable."
Je joint mon code du fichier xml :
et voici mon code AS 3 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| stop();
// import des classes
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.display.Loader; // permet de charger des fichiers : swf, jpg.. et les afficher sur la scene comme 1 movie clip
import flash.display.LoaderInfo
import flash.containers.UILoader;
import flash.net.URLRequest;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.events.*;
import flash.text.*;
import flash.filters.*;
// DECLARATION DE VARIABLES
var nbPieceOk:Number=0;
//Constantes
var dossierImage:String = 'images/ImagesCarrées/';
//CHARGEMENT FICHIER XML et LECTURE NOEUDS
//chargement donnees du fichier xml
var chargeurDonnees:URLLoader = new URLLoader(); // objet de chargement
chargeurDonnees.dataFormat = URLLoaderDataFormat.TEXT; // type de donnees a charger
var adresseFichierXML:URLRequest = new URLRequest("puzzlelist1.xml"); // url fichier a charger
//chargement du xml
chargeurDonnees.load(adresseFichierXML);
//les donnees ne peuvent être traitees qu'apres chargemnt effectif
chargeurDonnees.addEventListener(Event.COMPLETE,gestionXML); //= ecouteur de fin de chargement
//fonction récupération du flux XML qui s'effectuera à la fin du chargement
function gestionXML(event:Event):void {
// 1 - verifier et intercepter une erreur possible avec la variable fichierXML
try
{
//récupération du fichier XML
var donneesLues:XML= new XML(event.target.data);
donneesLues.ignoreWhitespace = true;
//composant UILoader fournit uniquement un affichage visuel à l'objet Loader.
var containeurImages:UILoader = new UILoader();
containeurImages.load(new URLRequest());
containeurImages.source = donneesLues.puzzle[1];//.elements()
// on positionne l'objet containeurImages sur la scene :
containeurImages.y = 10;
containeurImages.x = 10;
containeurImages.scaleContent = false;
// on affiche l'objet loader sur la scene :
stage.addChild(containeurImages);
// on définit la fonction finDuChargement, executée par l'évenement COMPLETE :
function finDuChargement ( event:Event ) {
trace("Chargement terminé !");
}
}
// 2 - si l'extraction echoue
catch(e:TypeError) {
trace( e.toString() ) ;
trace ("impossible de charger le XML");
trace(e.message);
}
} |