XML avec AS3

jno123 Messages postés 2 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 25 novembre 2009 - 24 nov. 2009 à 17:47
jno123 Messages postés 2 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 25 novembre 2009 - 25 nov. 2009 à 13:58
Bonjour, je viens vers vous afin de trouver une solution à mon problème dans Flash CS3 -> AS3.
- J'utilise un fichier xml pour charger des infos dans mon fichier swf (images + titres) sur la scène principale, jusqu'ici aucun problème.
- Une fois les infos chargées et affichées sur la scène, je souhaiterais lorsqu'on clic sur l'une des 3 images, un MovieClip depuis la bibliothèque est instancié sur la scène principale avec les informations correspondantes à l'image (cad: image, titre, text + lien url) récupéré elles aussi dans le fichier xml.

J'ai réalisé des tests, le MovieClip est bien instancié sur la scène lorsque je clic sur l'une des 3 images.
Mais il me remplis les champs textes avec le dernier noeud de mon fichier xml.


Si quelque à un tut de ce style ou peux m'aider je veux bien, je début avec flash et le xml.
Merci d'avance.

2 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
24 nov. 2009 à 23:41
Si on pouvait avoir ton code AS on le probleme se situe cela aiderai ;-)


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
jno123 Messages postés 2 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 25 novembre 2009
25 nov. 2009 à 13:58
import flash.display.MovieClip;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE,completeHandler);
var request:URLRequest = new URLRequest("programme/vendredi.xml");
try{
loader.load(request);
}
catch(error:Error){
trace('Impossibile de charger le fichier xml.');
}

var mcTumb:tmb;
var __x:int = 0;
var __y:int = 0;

function completeHandler(event:Event):void{
var result:XML = new XML(event.target.data);
var myXML:XMLDocument = new XMLDocument();
myXML.ignoreWhite = true;
myXML.parseXML(result.toXMLString());
var node:XMLNode = myXML.firstChild;
var n:int = node.childNodes.length;
var Tab:Array;

for (var i:int = 0; i < n; i++){
var titleTxt:String = node.childNodes[i].childNodes[0].childNodes;
var descTxt:String = node.childNodes[i].childNodes[1].childNodes;
var thumbs:String = node.childNodes[i].childNodes[2].childNodes;
var m:int = node.childNodes[i].childNodes[2].childNodes.length;
mcTumb = new tmb();
mcTumb.x = __x;
mcTumb.y = __y;


//--- ici le dernier test que j'ai réalisé avec un Array
Tab = new Array();
Tab[i] = node.childNodes[i].childNodes[0].childNodes;
mcTumb.name = Tab[i];
mcTumb.length = Tab.length;
trace(mcTumb.name);
trace(mcTumb.length);
mcTumb.addEventListener(MouseEvent.CLICK, executeClick);
var titleTxtBio:String = node.childNodes[i].childNodes[0].childNodes;
containerB.titleBio.htmlText = titleTxtBio;
//--- fin du test

for(var j:int =0; j < m; j++){
var LoaderImg:Loader = new Loader();
var maRequette:URLRequest = new URLRequest(thumbs);
LoaderImg.load(maRequette);
mcTumb.containerT.addChild(LoaderImg);
}

mcTumb.titleLabel.descText.htmlText = titleTxt;
mcTumb.descLabel.descText.htmlText = descTxt;
mainmenu.containerTmbs.addChild(mcTumb);
__x+= mcTumb.width+15;
}
};

// je déclare un nouvel objet containerB
var containerB:mcBio = new mcBio();
containerB.x = Math.floor(stage.width - (containerB.width + stage.width/3));
containerB.y = Math.floor(stage.height-(containerB.height));

// code qui instancie le MovieClip sur la scène
function executeClick(mcTumb:MouseEvent):void{
addChild(containerB);
}

// code pour supprimé le MovieClip instancié
containerB.closeBt.addEventListener(MouseEvent.CLICK, closeBio);
function closeBio(Event):void{
removeChild(containerB);
}


Ici le Fichier XML : "vendredi.xml"
<?xml version="1.0" encoding="UTF-8"?>
<vendredi>

<title><![CDATA[Miranda Lambert]]></title>
<heure><![CDATA[20h30]]></heure>
<tmb>programme/s1.jpg</tmb>
<![CDATA[En 2003, Miranda Lambert auditionna pour le concours Nashville Star, où elle termina troisième. Le 15 septembre 2003, elle signa avec Columbia Records. Son premier single ; Me and Charlie Talking (co-écrit avec son père) sorti durant l’été 2004 et fut le titre phare de son premier album Kerosene qui comprend 12 chansons, dont 11 où elle a participé à l’écriture. L’album se plaça numéro 1 au classement des meilleurs albums de musique country et devint disque de platine pour avoir dépassé le million de copies vendues à travers les États-Unis.]]>
http://www.mirandalambert.com


<title><![CDATA[Michele Leho]]></title>
<heure><![CDATA[22h30]]></heure>
<tmb>programme/s2.jpg</tmb>

http://www.micheleleho.fr


<title><![CDATA[Home Cooking]]></title>
<heure><![CDATA[00h30]]></heure>
<tmb>programme/s3.jpg</tmb>
<![CDATA[En passant du blues au folklore irlandais, du rock’n roll à la country et à la musique cajun, Mike Fairbairn, le fondateur du groupe, ne craint pas de mélanger les genres. D’ailleurs, pour lui, il n’y a pas de genre, il y a seulement la musique. Sans doute un souvenir des clubs londoniens où il traînait ses basques d’adolescent car, en Angleterre, la musique n’est pas découpée en tranches comme en France.]]>
http://www.home-cooking-productions.com

</vendredi>
0
Rejoignez-nous