loblobloblob
Messages postés77Date d'inscriptionmardi 7 avril 2009StatutMembreDernière intervention18 mars 2010
-
16 mars 2010 à 10:35
loblobloblob
Messages postés77Date d'inscriptionmardi 7 avril 2009StatutMembreDernière intervention18 mars 2010
-
18 mars 2010 à 10:21
Bonjour,
je souhaite récupérer des données d'un fichier xml en AS3 dont les noeuds ont des noms différents.
voici mon fichier xml :
je voudrais par exemple n'afficher que les images de la catégorie instru,
pour cela j'ai récupérer un code flash qui fonctionne très bien avec des numéros, mais vue que le fichiers xml sera généré automatiquement en php et que des catégories pourront y être ajouter cela ne fonctionnera pas avec les numéro, mais impossible pour moi de le faire avec des noms :
var lesDonneesXML:XML;
var chargeur:URLLoader = new URLLoader();
var adresseFichier:URLRequest = new URLRequest("xml/agence.xml");
var style : TextFormat = new TextFormat();
var texteErreur : TextField = new TextField ();
var container:Sprite = new Sprite();
var nouvelleCouleur:ColorTransform = new ColorTransform();
nouvelleCouleur.color = 0x009EE0;
var nouvelleCouleur2:ColorTransform = new ColorTransform();
nouvelleCouleur2.color = 0x333333;
var comptDiapo:Number ;
comptDiapo = Number(loaderInfo.parameters.maVar3)|| 0;
var portfolio:Number ;
portfolio = Number(loaderInfo.parameters.maVar4)|| 0;
function affichageBouton ()
{
var n :Number = lesDonneesXML.portfolio[portfolio].children().length();
var ecart:Number = 8 ;
var totalWidth:Number = 605 -((n+1)*25) ;
for(var i :Number =0; i<=n-1; i++)
{
var boutonImage : MovieClip = new bouton();
boutonImage.name=""+i;
totalWidth += boutonImage.width + ecart;
boutonImage.x = totalWidth;
boutonImage.y = 385;
addChild(boutonImage);
var bTnom:TextField = new TextField();
boutonImage.bTnom.text=(lesDonneesXML.portfolio[0].clients.nom[i]);
boutonImage.bTnom.embedFonts = true
boutonImage.bTnom.selectable = false;
boutonImage.bTnom.setTextFormat(style);
boutonImage.addEventListener(MouseEvent.MOUSE_OVER,afficherMain);
boutonImage.addEventListener(MouseEvent.MOUSE_OUT,cacherMain);
boutonImage.addEventListener(MouseEvent.CLICK,afficherConteneurs);
}
}
function transition(evt:Event):void
{
if (contains (jauge))removeChild (jauge);
container.getChildAt(2).alpha=0;
Tweener.addTween(container.getChildAt(2),{alpha:1, time:2, transition:"alpha"});
System.gc();
}
je précise que les variables maVar3 et maVar4 sont initialisé lors de l'appel du swf dans la page php afin de faire appelle à la bonne galerie sur la page.
loblobloblob
Messages postés77Date d'inscriptionmardi 7 avril 2009StatutMembreDernière intervention18 mars 2010 16 mars 2010 à 13:46
Merci pour ton aide mais, j'ai rien trouvé concernant mon probléme, je n'arrive toujours pas à accéder à mes catégorie (instru, vehicule ...) dynamiquement, car le but est de pouvoir ajouter ou supprimer des catégories suivant les besoins du site.
j'ai essayé avec les méthode name(), valueOf(), localName(), mais cela n'a rien donnée et il me sort souvent cette erreur : TypeError: Error #2007: Le paramètre url ne doit pas être nul.
je comprend pas pourquoi, car j'ai n'ai pas rentré de variable nulle
var lesDonneesXML:XML;
var chargeur:URLLoader = new URLLoader();
var adresseFichier:URLRequest = new URLRequest("xml/agent.xml");
var style : TextFormat = new TextFormat();
var texteErreur : TextField = new TextField ();
var container:Sprite = new Sprite();
var nouvelleCouleur:ColorTransform = new ColorTransform();
nouvelleCouleur.color = 0x009EE0;
var nouvelleCouleur2:ColorTransform = new ColorTransform();
nouvelleCouleur2.color = 0x333333;
var comptDiapo:Number ;
comptDiapo = Number(loaderInfo.parameters.maVar3)|| 0;
var portfolio:String ;
portfolio = String(loaderInfo.parameters.maVar4)||"";
function affichageBouton ()
{
var n :Number = lesDonneesXML.portfolio[portfolio].children().length();
var ecart:Number = 8 ;
var totalWidth:Number = 605 -((n+1)*25) ;
for(var i :Number =0; i<=n-1; i++)
{
var boutonImage : MovieClip = new bouton();
boutonImage.name=""+i;
totalWidth += boutonImage.width + ecart;
boutonImage.x = totalWidth;
boutonImage.y = 385;
addChild(boutonImage);
var bTnom:TextField = new TextField();
boutonImage.bTnom.text=(lesDonneesXML.portfolio[""].nom[i]);
boutonImage.bTnom.embedFonts = true
boutonImage.bTnom.selectable = false;
boutonImage.bTnom.setTextFormat(style);
boutonImage.addEventListener(MouseEvent.MOUSE_OVER,afficherMain);
boutonImage.addEventListener(MouseEvent.MOUSE_OUT,cacherMain);
boutonImage.addEventListener(MouseEvent.CLICK,afficherConteneurs);
}
}
function transition(evt:Event):void
{
if (contains (jauge))removeChild (jauge);
container.getChildAt(2).alpha=0;
Tweener.addTween(container.getChildAt(2),{alpha:1, time:2, transition:"alpha"});
System.gc();
loblobloblob
Messages postés77Date d'inscriptionmardi 7 avril 2009StatutMembreDernière intervention18 mars 2010 16 mars 2010 à 15:23
Même si je suis toujours coincé je pense avoir compris le fond de mon probléme, en fait en haut de mon fichier flash je crée une variable portfolio, et dans :
var comptDiapo:Number ;
comptDiapo = Number(loaderInfo.parameters.maVar3)|| 0;
var nom:String ;
nom = String(loaderInfo.parameters.maVar4)||"i";
pour coppter les images et pouvoir récuérer le nom de nom_client voulu depuis l'intégration du swf dans mon fichiers php, afin d'afficher que les images d'instru, ou autres
ici je charge les images dans le flash, mais flash m'indique en sortie :
ReferenceError: Error #1069: La propriété currentTarget est introuvable sur String et il n'existe pas de valeur par défaut.
at diaporama_test_fla::MainTimeline/creationConteneurs()
at diaporama_test_fla::MainTimeline/chargementTermine()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
loblobloblob
Messages postés77Date d'inscriptionmardi 7 avril 2009StatutMembreDernière intervention18 mars 2010 17 mars 2010 à 15:36
Après dépatouillage : trace(lesDonneesXML.clients.nom_clients.text()[0]));
m'affiche le premier élément, donc je peut facilement faire une boucle de i = 0 à i <= lesDonneesXML.clients.nom_clients.text().length() pour vérifier tous mes noeud nom_clients.
Mais maintenant j'ai un soucis de condition pour effectuer mes action.
au début du code j'ai crée une variable nom dans laquel je stoque le nom de nom_clients voulu, mais cette variable n'est initialiser que dans l'appelle du swf dans la page php.
Je n'ai aucune idée de la façon de procéder afin de n'afficher que les bonnes images propres à la gallerie souhaité.