IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX] Transfert PHP vers Flash (xml) pb avec '€'


Sujet :

Flash

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut [FLASH MX] Transfert PHP vers Flash (xml) pb avec '€'
    Salut,

    avec flash je recupère un xml créé à la volée en php.
    J'utilise CDATA pour les données.
    Je transforme en UTF-8 : echo utf8_encode($txt);

    jusque là pas de pb avec les accents, les >,les < ....

    Seulement dès que je veux afficher le sigle : €, j'ai un carré dans flash car le € donne : € après le utf8_encode();

    J'ai egalement essayé en HTML : &euro; mais ça me l'affiche tel quel même quand je fais dans flash : txt.htmlText="&euro;"


    et là je bloque

  2. #2
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Hello

    essai de convertir directement le symbole en UTF8 avec la syntaxe :
    EKA+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    Salut ekameleon,

    je viens d'essayer et marche pas

    pourtant :
    1- mon xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <periode><![CDATA[\u20AC]]></periode><description><![CDATA[€]]></description>
    2- dans flash :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tbTxtPeriode[i] = "\u20AC ou €"+racine[i].childNodes[0].childNodes[0].nodeValue.toString();
    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "\u20AC ou €"+"...  -> donne bien "€ ou €"
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    racine[i].childNodes[0].childNodes[0].nodeValue.toString(); donne "\u20AC" dans le texte
    J'ai ajouté "\u20AC ou €" au début pour voir le comportement...

    là je ne vois toujours pas

  4. #4
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Hello

    le toString aprés le nodeValue est inutile normalement

    Maintenant pour tester faudrait me faire un petit php et un petit fla pour que je teste et que je vois ce qui ne va pas J'ai pas le temps de faire un test .. ou alors je verrai cette aprés midi si j'ai le temps.

    EKA+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    le source .php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    function fctNettoyerEuro($texte) 
    	{ 		
    		$para = array("€");
    		$para2 = array("\u20AC");
    		$texte = str_replace($para,$para2,$texte);
    		return $texte; 
    	} 
    -->ici connexion bd
     
    $txtAnnonce = "<annonce>";
     
    	while($tableau = mysql_fetch_array($envoi))
    	{
    		$txtAnnonce .= "<promo>";
    		$txtAnnonce .= "<periode><![CDATA[".$tableau['d_annonce_txt_periode']."]]></periode>";
    		$txtAnnonce .= "<description><![CDATA[".$tableau['d_annonce_txt']."]]></description>";
    		$txtAnnonce .= "</promo>";
    		$i++;
    	} 
     
    	$txtAnnonce .= "</annonce>";
     
    	//ici j'ai essayé avec ou sans la fonction...
    	echo "<?xml version='1.0' standalone='yes'?> ".fctNettoyerEuro(utf8_encode($txtAnnonce));
    et le .fla
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    var nbAnnonce=0;
     
    //chgt xml
    oXml = new XML();
    oXml.load("annonce.php?anticache="+(new Date()).getTime());
    oXml.ignoreWhite = true;
    oXml.onLoad=extractData;
     
    function extractData(success){			
     
    		racine=oXml.firstChild.childNodes;
    		nbAnnonce=racine.length;	
     
    		for(i=0;i<nbAnnonce;i++)
    		{
    			txtAnnonces.htmlText += "periode "+i+" :<br />"+racine[i].childNodes[0].childNodes[0].nodeValue;			
    			txtAnnonces.htmlText += "desc "+i+" :<br />"+racine[i].childNodes[1].childNodes[0].nodeValue;
    			txtAnnonces.htmlText += "-> pour tester  : € ou \u20AC";
    			txtAnnonces.htmlText += "----------------------------------------<br />";			
    		}
    }
    stop();
    j'ai fait test avec htmlentities..., en activant le html sur la zone de texte...

    Mais marche pas

  6. #6
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Hello

    Quand tu lances le html tout seul il te renvois quoi ? ton xml comme il faut ?

    PS : dans une fonction en flash .. si tu utilises des variable temporaire comme ton nbAnnonce ou ta variable i dans la boucle "for", pense à les déclarer avec un "var" car à la fin de la fonction cela détruit automatiquement les variables et c'est pas plus mal

    EKA+

  7. #7
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Sinon au passage je te conseille de bien faire attention à ton ciblage etc.. A quoi cela te sert de faire une fonction en + pour ton onLoad si tu ne changes pas le scope de la fonction ?

    Méthode 1 qui simplifie ce que tu as fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    oXml.onLoad = function (success){         
          trace (this) ;
          var racine= this.firstChild.childNodes;
          var nbAnnonce=racine.length;   
     
          for(var i=0;i<nbAnnonce;i++)
          {
             txtAnnonces.htmlText += "periode "+i+" :<br />"+racine[i].childNodes[0].childNodes[0].nodeValue;         
             txtAnnonces.htmlText += "desc "+i+" :<br />"+racine[i].childNodes[1].childNodes[0].nodeValue;
             txtAnnonces.htmlText += "-> pour tester  : € ou \u20AC";
             txtAnnonces.htmlText += "----------------------------------------<br />";         
          }
    }
    Méthode 2 pour avoir un scope différent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    import mx.utils.Delegate ; // depuis flashMX2004
     
    oXml.onLoad= Delegate.create(this, extractData) ; 
     
    this.extractData = function (success){         
          trace (this) ; // là le this c'est pas le xml mais la scène prinicpale !
          var racine=oXml.firstChild.childNodes;
          var nbAnnonce=racine.length;   
     
          for(var i=0;i<nbAnnonce;i++)
          {
             txtAnnonces.htmlText += "periode "+i+" :<br />"+racine[i].childNodes[0].childNodes[0].nodeValue;         
             txtAnnonces.htmlText += "desc "+i+" :<br />"+racine[i].childNodes[1].childNodes[0].nodeValue;
             txtAnnonces.htmlText += "-> pour tester  : € ou \u20AC";
             txtAnnonces.htmlText += "----------------------------------------<br />";         
          }
    }
    Voilà ....

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    merci pour ces conseils,

    Quand je lance le annonce.php, rien ne s'affiche sur mon navigateur, je passe par affichage source pour vérifier le xml, c'est pas normal?

Discussions similaires

  1. [Flex4] Transfert variables PHP vers FLASH puis vers fichier php
    Par funcinema5 dans le forum Flex
    Réponses: 0
    Dernier message: 12/10/2010, 17h36
  2. Transfert de variables PHP vers Flash
    Par Bozomobile dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 02/12/2008, 13h30
  3. [FLASH MX2004] Variable php vers flash
    Par Rhadamanthe59 dans le forum Flash
    Réponses: 8
    Dernier message: 01/03/2006, 22h14
  4. [FLASH MX] PHP vers Flash
    Par gotcha007 dans le forum Flash
    Réponses: 2
    Dernier message: 27/02/2006, 16h11
  5. [FLASH 8] php vers flash
    Par molesqualeux dans le forum Flash
    Réponses: 2
    Dernier message: 18/11/2005, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo