Mise en page xml avec flash

Signaler
Messages postés
14
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
15 février 2010
-
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour,

J'essaye de découvrir des horizons inconnus en 2010, et il faut dire que je galère bien!

Introduction

Mon but : afficher une liste d'adresse dans un site internet (developpé sous Webdev) modifiable par excel.
Pour l'instant ça marche à peu près, je m'explique :
- j'ai un mappage.xsd qui me permet de faire ma liste sous Excel puis d'enregistrer ma liste sous format .xml
- ce fichier .xml je l'utilise comme ressource pour mon fichier flash
- le fichier xml est exploité par un texte dynamique sous flash
- le fichier flash est utilisé pour afficher la liste d'adresse dans mon site webdev

Problème

Mon problème est en faite au niveau de la mise en page, je voudrais passer de ça :
Nom1Adresse1Ville1Nom2Adresse2
Ville2...NomNVilleNAdresseN

à ça :
Nom1
Adresse1
Ville1

Nom2
Adresse2
Ville2

Compléments

Je ne sais pas dans quelle direction aller.

Je vois deux alternatives à ce problème :
- faire la mise en page en appelant une feuille de style CSS (si j'ouvre le xml avec IE, il me prend bien en compte le .css, par contre avec flash, ça ne passe pas, faut-il rajouter un code spécifique? Je n'ai rien trouvé dans l'aide)
- faire la mise en page avec Textformat (je ne sais pas quel code mettre, ni ou le mettre car mon fichier .xml changera souvent donc ce n'est pas sur des mots que le style s'applique mais plutôt sur ce qu'il y a entre les balises <nom> <rue> et <ville>)


Voici le code du fichier XML :

<?xml-stylesheet href="style_content.css" type="text/css"?>
<content> 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 
<contact>
<Entrees>
<Nom>Monsieur 1</Nom>
<Rue>1 rue 111</Rue>
<Ville>11111 Ville 1</Ville>
</Entrees>
<Entrees>
<Nom>Madame 2</Nom>
<Rue>2 rue 222</Rue>
<Ville>22222 Ville 2</Ville>
</Entrees>
</contact>
</content>


Voici le code du .css :

<style type="text/css">
contact , entrees {}
societe {
    display: block;
    width: 250px;
    font-size: 11pt ;
    font-family: myriad pro ;
    font-weight: bold;
    color: grey;
    padding-left: 10px;
}

rue {
    display: block;
    font-family: myriad pro ;
    font-size: 11pt;
    color: grey ;
    padding-left: 10px;
}

ville {
    display: block;
    font-family: myriad pro ;
    font-size: 11pt;
    color: grey ;
    padding-left: 10px;
margin: 0 0 20px 0;
}

</style>


J'espère avoir été assez clair, merci pour votre attention et bonne journée.

15 réponses

Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Salut,
je ne sais pas trop, mais lorsque dans ton flash tu appelle tes données (imaginons que ton champ texte s'appelle monTexte),
esaie de mettre monTexte.multiligne true et monTexte.wordWrap true;
Si ça ne suffit pas essaie de mettre des \n pour faire sauter une ligne.
Voilà, mais je crois que cela n'a rien à voir ni avec le XML, ni avec la CSS. C'est plutôt ton code flash qu'il faudrait avoir.

Tout vient à qui sait attendre
Messages postés
14
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
15 février 2010

Merci Inaden pour avoir pris le temps de répondre!
J'ai essayé de mettre les codes, ça n'a pas marché, pour les "\n" il faudrait les mettre où? Dans le XML?

En tout cas, gros merci car je désespérais vraiment!
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Non, pas dans le xml... enfin je pense pas.
Je ne sais pas comment tu appelles ton xml, disons que ton appelle de xml est appelleXML.Entrees.Nom qui renvoie Monsieurs 1, et appelleXML.Entrees.rue qui renvoie rue 1, tu aurais au niveau de ton flash (pour reprendre mon exemple du haut :
monTexte.text = appelleXML.Entrees.Nom + "/n" +appelleXML.Entrees.rue + "/n";
Ou bien, tu pourrais aussi faire
monTexte.htmlText = ""+appelleXML.Entrees.Nom + "

" +appelleXML.Entrees.rue + "

";
Ce qui te premettrais même au niveau de ta feuille de style de mettre des style pour des balises spécifiques

monTexte.htmlText = ""+appelleXML.Entrees.Nom + "
" +appelleXML.Entrees.rue + "

";
Voilà. J'espère que cela pourra t'aider.


Tout vient à qui sait attendre
Messages postés
14
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
15 février 2010

OK OK.

Je vais étudier ça, je suis pas là pendant 2 jours.
Mon code ActionScript à l'air bancal, je vais essayer d'y remédier.

Merci et à plus tard.
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Ok. Revient nous voir en cas de problème... je suis pas une brute, mais si je peux faire quelque chose...


Tout vient à qui sait attendre
Messages postés
14
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
15 février 2010

Hello,

Me voilà de retour, sans résultats concluants.

Voici mon ActionScript(2) au cas ou j'ai fait des bourdes :

MonXml = new XML();
MonXml.ignoreWhite = true;
MonXml.load("content_internet.xml");


_global.Getcontent = function (xmlobject) {
Nbr = xmlobject.firstChild.childNodes.length ;
for (i=0; i <= Nbr ; i++) {
content = ""+MonXml.Entrees.Societe + "

" +MonXml.Entrees.Rue + "

" +MonXml.Entrees.Ville + "

";
}
gotoAndStop("done");
}


En faite, je n'ai plus de texte mais j'ai bien un retour à la ligne (à la place du texte j'ai "Undefined" trois fois les uns en dessous de l'autre).

Je continue à potasser...
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Salut,
peux-tu filer la partie du code qui défini le champ texte dans lequel tu mets ton content. La on ne vois que la valeur de ta variable, pas son formatage pour l'affichage.

Tout vient à qui sait attendre
Messages postés
14
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
15 février 2010

J'ai juste un :

Getcontent(MonXml);


Si tu veux les fichiers pour voir ce qui s'y passe... Y'a pas de problème!
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Fais voir...


Tout vient à qui sait attendre
Messages postés
14
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
15 février 2010

Salut,

Après avoir fait quelques recherches, je te fais part de mes constatations.
J'ai vu que si je mettais ça :

MonXml = new XML();
MonXml.ignoreWhite = true;
MonXml.load("content_internet.xml");


_global.Getcontent = function (xmlobject) {
Nbr = xmlobject.firstChild.childNodes.length ;
for (i=0; i <= Nbr ; i++) {
content = ""+xmlobject.firstChild.childNodes[1].childNodes[0]+ "

" +xmlobject.firstChild.childNodes[1].childNodes[1]+"

" +xmlobject.firstChild.childNodes[1].childNodes[2]+"

" +xmlobject.firstChild.childNodes[1].childNodes[3]+"

"; 
}
gotoAndStop("done");

Les retours à la ligne se font bien mais évidement ce n'est pas généralisé.
Quand je mets :
content = xmlobject.Entrees.Nom + "/n" +xmlobject.Entrees.rue + "/n"; 

ça ne me génère rien, ça me met "undefined"...
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
ce n'est pas "/n" mais "\n"
Mais si ça marche avec les balise pourquoi chercher ailleurs !


Tout vient à qui sait attendre
Messages postés
14
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
15 février 2010

Le problème c'est que si je met :

content = ""+xmlobject.firstChild.childNodes[1].childNodes[0]+ "

" +xmlobject.firstChild.childNodes[1].childNodes[1]+"

" +xmlobject.firstChild.childNodes[1].childNodes[2]+"

" +xmlobject.firstChild.childNodes[1].childNodes[3]+"

";

ou

content = xmlobject.firstChild.childNodes[1].childNodes[0]+ "\n" +xmlobject.firstChild.childNodes[1].childNodes[1]+ "\n"; 


Seul les informations du 1er contact apparaissent, si je rajoute une adresse dans mon xml, elle n'apparaitra pas car il n'y aura pas le "xmlobject.firstChild[n].childNodes[n]" dans "content ="...

En tout cas tes indications m'auront bien aidé quand même et me seront toujours utiles pour d'autres projets!
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Et un truc du genre : (avec borne = nbre d'entrée de ton XML)
var contenu : String() = "";
for(var i : int ; i< borne ; i++){
contenu = contenu+""+xmlobject.firstChild.childNodes[1].childNodes[i]+"

;
}

C'est pas testé et il y surement plus élégant. tiens nous au courant.


Tout vient à qui sait attendre
Messages postés
14
Date d'inscription
jeudi 12 novembre 2009
Statut
Membre
Dernière intervention
15 février 2010

Hello,

Et bien, je n'ai toujours pas réussi à faire ce que je voulais.
Je crois qu'à ce niveau, c'est trop se compliquer pour ce résultat.
Je vais laisser ça en stand by, et modifier directement le xml.

En tout cas grand merci à toi Inaden, pour le temps que tu as passé et désolé pour tout ce remue ménage.

@+
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
De rien,
désolé de n'avoir pu te sortir d'affaire.
Bonne chance et bon courage pour la suite.

Tout vient à qui sait attendre