Forums Développement Multimédia

Aller au contenu

E4X et variables AS3

CODE Actionscript

5 réponses à ce sujet

#1 laurent

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 25 November 2008 - 16:08 PM

Bonjour,
j'utilise Gaia, et dans une classe je veux récupérer du contenu
en fonction de la langue, le code langue est contenu dans une variable String.
Je compose donc ce code E4X

Action Script


var langID = (stage.getChildAt(0)["idlang"]).substr(0,1).toUpperCase() + (stage.getChildAt(0)["idlang"]).substr(1,1) ;
var myXML:XML = IXml(assets.conc).xml;
titre.text=(myXML.Concept.Lang.(@id==langID).Titre.text());

Ca ne revoit rien ou plutôt un xml vide, sans causé d'erreur, je suppose que la variable langID n'est pas
traduite en String, après avoir cherhcer je ne trouve pas de moyen de valider cette syntaxe?
Une idée?

MErci




#2 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 25 November 2008 - 16:13 PM

Salut,

langID étant le retour d'un getChildAt(), çà ne peut être qu'un DisplayObject, donc je vois pas le rapport avec un String contenu dans le XML. icon_eek.gif D'ailleurs le fait que tu ais pas typé la variable langID me laisse supposer que çà n'est pas plus clair pour toi. icon_razz.gif

#3 laurent

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 25 November 2008 - 16:23 PM

Admettons,

Action Script

 var langID:String = (stage.getChildAt(0)["idlang"]).substr(0,1).toUpperCase() + (stage.getChildAt(0)["idlang"]).substr(1,1) ; 
var myXML:XML = IXml(assets.conc).xml;
titre.text=(myXML.Concept.Lang.(@id==langID).Titre.text());

le fait d'utiliser substr renvoi un String de toutes manières, mais ce n'est pas ce qui me préoccupe ici, mais
plutôt cette expression: "myXML.Concept.Lang.(@id==langID)"

Merci.

#4 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 25 November 2008 - 16:38 PM

Ha oui, j'avais pas vu cette horrible ligne à rallonge. smile.gif
Ben trace ce que çà donne langID, mais sinon la syntaxe niveau XML est bonne, rien de spécial à faire.

#5 laurent

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 25 November 2008 - 17:17 PM

Et oui...
C'est déjà fait, lagID = "Fr" par exemple,
mais un trace sur myXML.Concept.Lang.(@id==langID).Titre.text() ne renvoi
rien.
Avec E4X ce bout de code s'attend à trouver un attribut "langID", dans le XML.
Il doit donc exister une autre syntaxe pour passer la valeur, plutôt que le littéral.
icon_cry.gif

#6 laurent

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 25 November 2008 - 17:57 PM

icon_redface.gif
Je suis un misérable ver de terre, tous ça fonctionne très bien si j'évite de comparer
une chaine en majuscule à une autre en minuscule.
La prog c'est un métier!
Désolé pour le dérangement




1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)