Aller au contenu

Probleme de flash/XML


djp1988

Sujets conseillés

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?

Lien vers le commentaire
Partager sur d’autres sites

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° 123
SOMMAIRE
Avant-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é 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)
Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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èmes

Il 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é par eurl
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...