djp1988 Posté 26 Janvier 2008 Posté 26 Janvier 2008 J'importe du text via XML dans flash et j'ai un soucis d'accents, quand je les écris normal en XML ils n'apparaisent pas dans flash et quand je les ecrit en code (è .....) ils apparisent en toute lettre "$egrave;" !! Comment puis-je contourner ce problème?
mohican83 Posté 28 Janvier 2008 Posté 28 Janvier 2008 Salut, Dans le flash, tu as indiqué que la zone de texte reçoit du html? @+
djp1988 Posté 28 Janvier 2008 Auteur Posté 28 Janvier 2008 c'est simplement du champ de text dynamique avec un nom d'identité, avec actionScript j'envoie du text dans un attribute qui se trouve dans mon document xml
mohican83 Posté 28 Janvier 2008 Posté 28 Janvier 2008 Re, tu utilises bien en as pour ton champs text : mon_text.htmlText="qsdf" ? @+
djp1988 Posté 28 Janvier 2008 Auteur Posté 28 Janvier 2008 (modifié) Mon ActionScript: CODE import mx.utils.Delegate;import mx.transitions.Tween; import mx.transitions.easing.*; var numOfItems:Number; var radiusX:Number = 300; var radiusY:Number = 75; var centerX:Number = Stage.width / 2; var centerY:Number = Stage.height / 2; var speed:Number = 0.05; var perspective:Number = 130; var home:MovieClip = this; theText._alpha = 0; var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000); tooltip._alpha = 0; var xml:XML = new XML(); xml.ignoreWhite = true; xml.onLoad = function() { var nodes = this.firstChild.childNodes; numOfItems = nodes.length; for(var i=0;i<numOfItems;i++) { var t = home.attachMovie("item","item"+i,i+1); t.angle = i * ((Math.PI*2)/numOfItems); t.onEnterFrame = mover; t.toolText = nodes.attributes.tooltip; t.content = nodes.attributes.content; t.icon.inner.loadMovie(nodes.attributes.image); t.r.inner.loadMovie(nodes.attributes.image); t.icon.onRollOver = over; t.icon.onRollOut = out; t.icon.onRelease = released; } } function over() { home.tooltip.tipText.text = this._parent.toolText; home.tooltip._x = this._parent._x; home.tooltip._y = this._parent._y - this._parent._height/2; home.tooltip.onEnterFrame = Delegate.create(this,moveTip); home.tooltip._alpha = 100; } function out() { delete home.tooltip.onEnterFrame; home.tooltip._alpha = 0; } function released() { home.tooltip._alpha = 0; for(var i=0;i<numOfItems;i++) { var t:MovieClip = home["item"+i]; t.xPos = t._x; t.yPos = t._y; t.theScale = t._xscale; delete t.icon.onRollOver; delete t.icon.onRollOut; delete t.icon.onRelease; delete t.onEnterFrame; if(t != this._parent) { var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true); var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true); } else { var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true); var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,128,1,true); var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,320,1,true); var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true); theText.text = t.content; var s:Object = this; tw.onMotionStopped = function() { s.onRelease = unReleased; } } } } function unReleased() { //BONUS Section var sou:Sound = new Sound(); sou.attachSound("sdown"); sou.start(); delete this.onRelease; var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true); for(var i=0;i<numOfItems;i++) { var t:MovieClip = home["item"+i]; if(t != this._parent) { var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true); var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true); } else { var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true); var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true); var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true); tw.onMotionStopped = function() { for(var i=0;i<numOfItems;i++) { var t:MovieClip = home["item"+i]; t.icon.onRollOver = Delegate.create(t.icon,over); t.icon.onRollOut = Delegate.create(t.icon,out); t.icon.onRelease = Delegate.create(t.icon,released); t.onEnterFrame = mover; } } } } } function moveTip() { home.tooltip._x = this._parent._x; home.tooltip._y = this._parent._y - this._parent._height/2; } xml.load("icons.xml"); function mover() { this._x = Math.cos(this.angle) * radiusX + centerX; this._y = Math.sin(this.angle) * radiusY + centerY; var s = (this._y - perspective) /(centerY+radiusY-perspective); this._xscale = this._yscale = s*100; this.angle += this._parent.speed; this.swapDepths(Math.round(this._xscale) + 100); } this.onMouseMove = function() { speed = (this._xmouse-centerX)/2500; } et mon xml se présent comme si: <icons><icon image="img1.png" tooltip="3e trimestre 07" content="3e trimestre 2007 N° 123SOMMAIREAvant-Propos - Max GOYFFON • Auguste Césaire Phisalix (1852-1906) : un savant au pays de Courbet - Christophe CUPILLARD • L’œuvre scientifique de Césaire Phisalix (1852-1906), découvreurdu sérum antivenimeux - Rosany BOCHNER& Max GOYFFON • Les amphibiens venimeux - Jean LESCURE • Épidémiologie des envenimations - Jean-Philippe CHIPPAUX • Actualités surles sérums antivenimeux et la sérothérapie - Jean-Philippe CHIPPAU" /></icons> Mais tout va bien j'arrive à faire afficher l'attribut "Content" de mon xml dans le champ de text dynamique dans Flash, mais Flash igniore les accents ! Modifié 29 Janvier 2008 par captain_torche Lorsque tu postes des codes longs, utilise de préférence la balise CODEBOX, qui a une hauteur fixe (captain_torche, modérateur)
mohican83 Posté 29 Janvier 2008 Posté 29 Janvier 2008 Salut, Tu crée ton xml à la volée ou avec un éditeur de texte? Si c'est un éditeur de texte, tu l'enregistres en UTF-8 Si c'est à la volée utilises-tu utf8_encode? @+
eurl Posté 29 Janvier 2008 Posté 29 Janvier 2008 Quelques pistes : Encodage du fichier : UTF-8 ? (pas d'accent il me semble) ANSI ? (là il accèpte tout : caractère asiatique (avec la bonne police) , Néerlandais ... ) CDATA (non ça c'est pour des balises) Police dans flash accèpte les accents ? (facile à vérifier) non? à creuser sur google...
djp1988 Posté 29 Janvier 2008 Auteur Posté 29 Janvier 2008 c'est en <?xml version="1.0" encoding="ISO-8859-1"?>
eurl Posté 29 Janvier 2008 Posté 29 Janvier 2008 (modifié) oui mais au moment de l'enregistrement choisi ANSI comme encodage de fichier Vérifie que tu soit pas en US-ASCII (sans accent) dans l'encodage du fichier (tu le vois quand tu sauves dans bloc-note). ANSI = ISO-8859-1 Aller pour clore j'ai trouvé ça : Les problèmesIl est clair que le codage UTF-8 sur 2 octets de é est différent de son codage ANSI sur 1 octet. De fait, nous l'avons vu, seuls les 127 premiers caractères (qui représentent ce que l'on appelle l'ASCII simple) ont le même codage en ANSI et en UTF-8. Ainsi, on peut s'attendre à avoir des problèmes si le système utilisé pour l'encodage du texte n'est pas le même que celui utilisé pour sa lecture. Sans surprise, il y a des problèmes ! Le tableau suivant montre les quatre cas possibles et les deux types de problèmes que l'on peut rencontrer. Texte codé en ANSI et lu comme de l'ANSI OK Texte codé en UTF-8 et lu comme de l'ANSI PB : caractères bizarres à la place des accents Texte codé en ANSI et lu comme de l'UTF-8 PB : caractères chinois?? à la place des accents Texte codé en UTF-8 et lu comme de l'UTF-8 OK ici eurl Modifié 29 Janvier 2008 par eurl
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant