Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1885 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Aide programmation galerie xml

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide programmation galerie xml

n°1645107
sarahz
Posté le 19-11-2007 à 10:18:17  profilanswer
 

Bonjour,
 
J'essaie de construire ma galerie toute seule comme une grande. Je rencontre un petit problème alors j'aimerais vous indiquer ma démarche pour que vous me disiez si je vais dans la bonne direction ou pas...
 
J'ai trois types de galeries différentes "dessin/peinture/sculpture (disons "autre" ), web et print. Les images auront la même taille, même nav etc. le code pour chaque galerie sera donc le même.
 
J'ai donc choisi de faire une variable "galerie_xml" qui prendra le nom du fichier.xml a charger selon le choix fait dans le menu.
 

Code :
  1. var galerie:String = "galerie_webdesign.xml";
  2. bt_web.onRelease = function() {
  3. galerie = "galerie_webdesign.xml";
  4. };
  5. bt_emailings.onRelease = function() {
  6. galerie = "galerie_emailings.xml";
  7. };


 
Ensuite, je charge le "bon" xml avec :  

Code :
  1. myXML.load(galerie);


 
Jusque là ca se fait non ?
 
Comment faire pour que mon fichier xml se recharge a chaque clic dans le menu ?  
 
je crée une fonction "charge galerie" qui serait appelée dans le code de chaque bouton ?
Je suis sceptique... A votre avis ?

mood
Publicité
Posté le 19-11-2007 à 10:18:17  profilanswer
 

n°1645124
premotif
Posté le 19-11-2007 à 11:03:04  profilanswer
 

Bonjour, oui tu devrais créer une fonction pour charger ton xml, à laquelle tu passeras un parametre qui correspond au bon fichier.

Code :
  1. function afficheGalerie($xml:XML):Void {
  2.    // ...
  3. }
  4. function chargeGalerieXml($xmlFile:String):Void {
  5.    var obj = this;
  6.    var myXML:XML = new XML();
  7.    myXML.ignoreWhite = true;
  8.    myXML.onLoad = function($success:Boolean) {
  9.       if ($success) obj.afficheGalerie(this);
  10.    }
  11.    myXML.load($xmlFile);
  12. }


et dans tes boutons, tu appelles simplement cette fonction :

Code :
  1. bt_web.onRelease = function() {
  2.   chemin.chargeGalerieXml("webdesign.xml" );
  3. }


Message édité par premotif le 19-11-2007 à 11:07:35
n°1645511
sarahz
Posté le 19-11-2007 à 22:28:32  profilanswer
 

J'ai essayé, mais du coup je rencontre d'autres pbs... D'abord l'attribution par défaut de la valeur "webdesign.xml" à $xmlFile, car maintenant que mon onload est dans une fonction, elle n'est plus appelée directement au départ... et j'ai aussi des trucs bizarres car je charge les données du xml dans des tableaux, et lorsque je passe d'un xml à l'autre, on dirait qu'il n'ecrase pas les données deja presentes dans les tableaux... Bref, tout ça pour en venir à une autre question, méthodologique :
 
Est ce qu'il vaut mieux (lire le XML, charger dans des tableaux, afficher les donnees) et recommencer à chaque fois que l'utilisateur clique dans le menu pour changer la galerie OUBIEN (lire tous les xml, tout charger dans des tableaux, afficher les donnees) et réaffecter les valeurs des tableaux aux zones d'affichages à chaque fois que l'utilisateur clique dans le menu ?
 
Euh... je suis claire là ? Merci beaucoup pour vos précieuses aides.

n°1645632
premotif
Posté le 20-11-2007 à 10:07:50  profilanswer
 

Oui tu as raison il vaut mieux charger les xml une seule fois, pendant le chargement du site par exemple, ou au clique dans le menu mais en vérifiant si le XML existe déja, auquel cas tu ne le recharges pas. Mon exemple était seulement pour illustrer l'idée qu'il faut que les boutons du menu lancent véritablement une action, et ne se contentent pas seulement d'attribuer une nouvelle valeur à une variable comme tu faisais.
 
L'architecture de ton movie va beaucoup influencer comment tu vas programmer, et vice versa, je ne peux pas vraiment t'aider plus que ça. Juste pour mention, perso je met des $ devant les paramètres de mes fonctions, mais jamais devant les autres variables, mais c'est seulement une habitude à moi, ça me permet de savoir plus rapidement ce qui est une variable et ce qui est un paramètre. Concernant tes tableaux, c'est normal qu'ils gardent une partie des valeurs précédentes si il contenait plus d'éléments avant. Il faut que tu le vides avant de le remplir à nouveau :
 

Code :
  1. arr = []; // équivaut à arr = new Array();


 
++


Message édité par premotif le 20-11-2007 à 10:10:53
n°1646106
antika
Posté le 20-11-2007 à 20:33:17  profilanswer
 

Il n'y a pas d'architecture parfaite en Flash, mais en général il vaut mieux fonctionner en séparant les couches données/vue/evenements.
 
Il faut savoir que la volumétrie d'un XML est faible. J'ai été très fan des chargements alambiqués très économes en bande passante (du genre un XML = un produit, 500-600 XML sur le serveur avec des "cache hits" ultra-sophistiqués) pendant longtemps, jusqu'à en revenir récemment, mes estimations de charge serveur étaient systématiquement sur-évaluées.
 
Comprendre "le XML, ça pèse que dalle".
 
Donc, il vaut mieux charger tout ton XML en une seule fois, tout au début, le parser dans une structure légère du type hashtable, et faire un delete sur ton XML (l'objet XML est le plus gourmand en mémoire dans toute l'API). Ne t'embête pas avec des archis du type un XML = une rubrique, ça ne sert à rien, tu peux tout mettre dans le même.
 
D'un point de vue architectural, tu as deux solutions :
- la méthode old-school: tu planques toute la logique de chargement dans un clip invisible au début de ton .swf, tu gardes cet objet sur toute ta timeline, et quand tu cliques sur ton bouton, tu accèdes à ton XML parsé en tapant vers ce clip invisible.
- la méthode du "vrai Marine": une couche de données séparée du reste, autrement dit une classe "ImgBrowserDataXML" qui ne sert qu'à charger les données. Idéalement elle implémente une interface "IImgBrowserData", ce qui permet de dériver cette couche vers d'autres technos sans toucher au reste du code d'affichage.  
 
Comprendre "le XML, ça pèse que dalle, mais le Remoting, ça pèse un angström de que-dalle".
 

Citation :

Juste pour mention, perso je met des $ devant les paramètres de mes fonctions


 
Historiquement les arguments sont préfixés par 'p' (= 'parameters'), le '$' est un caractère spécial donc moi j'évite. En plus le '$' ça fait Péhachpé, et le Péhachpé c'est pour les paÿdaÿ. Mais c'est un avis purement personnel.


Message édité par antika le 20-11-2007 à 20:39:01
n°1646262
premotif
Posté le 21-11-2007 à 09:37:32  profilanswer
 

Et à part ça, la vie ça va ?


Message édité par premotif le 21-11-2007 à 09:37:44
n°1646618
sarahz
Posté le 21-11-2007 à 15:32:16  profilanswer
 

Merci Antika pour cette réponse on ne peut plus... précise. J'apprécie l'effort de communication de tes connaissances. Cependant, ça reste encore beaucoup trop evolué pour moi ! Mais ça m'encourage, il faut viser haut pour progresser n'est ce pas ? alors merci encore.
 
Pour le coup de "planquer mes données dans un movie clip vide accessible des le debut" . Est ce que ca ne revient pas au même (à mon niveau) de tout charger dans des tableaux ?
 
D'ailleurs, à ce propos, je commence à avoir bcp de tableaux là, alors je pense faire un tableau à plusieurs dimensions, un par xml (je sais que tu m'as conseillé de tout mettre dans le meme xml mais je ne vois pas comment faire encore alors on verra plus tard).  
 
Ca donnerait un truc du genre :
i = nb de noeuds
j = nb de valeurs par noeud
 
for (i=0, i<nbdenoeuds, i++){
        for (j=0, j<nbdevaleurs, j++)
        {
          galerie[i][j] = myXML[i].childNodes[j].attributes.value;
        }
}
 
 
Ca se fait ça où je m'enflamme un peu là ?? :pt1cable:  


Message édité par sarahz le 21-11-2007 à 16:17:53
n°1646699
sarahz
Posté le 21-11-2007 à 17:15:17  profilanswer
 

Yeeeah Ca marche NIKEL !!!

n°1646953
Zedlefou
In cabbage we trust !
Posté le 22-11-2007 à 04:42:25  profilanswer
 

Oui ca ce fait.
Apres je suis surement pas un exemple vu que j'arrive toujours pas a trouver une methode qui me convient tout a fait. J'ai essayé ca, Xpath, AMFPHP ... je sais pas.
Sinon pour tout mettre dans un seul fichier, voici un exemple qui pourra peut etre t'inspirer :
http://zedlefou.free.fr/Band/blog.xml
C'est la structure d'un blog, donc assez riche et les differentes parties sont toutes au meme endroit.
Apres, je vois pas trop ce qui te pose probleme


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1647065
sarahz
Posté le 22-11-2007 à 11:14:36  profilanswer
 

Merci pour ton exemple ! Je ne savais pas que les structures des noeuds pouvaient être différentes... c'est pourquoi je voulais tout mettre dans des fichiers différents ! Du coup ça doit compliquer pas mal la lecture du fichier...
 
En tout cas, j'ai un autre problème maintenant... Pour résumer, voilà où j'en suis :
 
J'ai divisé toutes les actions en trois fonctions :
 
 -chargeXML (pXML:XML) : Array  
//prends un fichier XML en entrée et retourne un tableau contenant les données.  
 
 - afficheGalerie (pchoixrubrique:String)  
//prends en entrée la rubrique choisie par l'utilisateur, va chercher le tableau correspondant, assigne les données du tableau dans les champs dynamiques
 
 - afficheRubrique (tab:Array)
//est appelée par afficheGalerie pour mettre les bonnes données dans les champs selon le tableau passé en paramètre
 
Au tout début de l'animation, je créée mes tableaux de données comme ceci :

Code :
  1. var Tsites:Array = new Array();
  2. Tsites = chargeGalerieXML("Galerie_webdesign.xml" );
  3. Temailings = chargeGalerieXML("Galerie_emailings.xml" );
  4. ...


 
Pour voir si ça marche, je regarde le tableau juste après l'avoir créé :

Code :
  1. Tsites = chargeGalerieXML("Galerie_webdesign.xml" );
  2. trace("Longueur TSites : "+Tsites.length+newline);
  3. Temailings = chargeGalerieXML("Galerie_emailings.xml" );
  4. trace("Longueur TEmailings : "+Temailings.length+newline);


 
Et là il me répond "0" alors que lorsque je trace, à l'intérieur de ma fonction chargeGalerieXML, ca marche !
 
Ce qu'il y a c'est qu'on dirait qu'il execute les trace avant même d'être revenu de la fonction chargeGalerieXML.... comment faire pour ordonnancer tout ça s'il vous plait ?


Message édité par sarahz le 22-11-2007 à 11:16:32
mood
Publicité
Posté le 22-11-2007 à 11:14:36  profilanswer
 

n°1647112
Zedlefou
In cabbage we trust !
Posté le 22-11-2007 à 12:09:34  profilanswer
 

Faudrait que tu montres ta fonction chargeGalerieXML ...


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1647120
sarahz
Posté le 22-11-2007 à 12:21:30  profilanswer
 

Zedlefou a écrit :

Faudrait que tu montres ta fonction chargeGalerieXML ...


Mais avec plaisir  ;)  
 

Code :
  1. function chargeGalerieXML(galerie:String):Array{
  2. var tab:Array = new Array();
  3. var myXML:XML = new XML();
  4.     myXML.ignoreWhite = true;// Pour ignorer les blancs dans le .xml
  5. myXML.onLoad = function(ok)
  6. {
  7.   if (ok){
  8.    tab = this.firstChild.childNodes;
  9.    nbDesign = tab.length;
  10.    trace("****** nbDesign :  "+nbDesign+" "+"rubrique : "+galerie);
  11.    for (i=0; i<nbDesign; i++) {
  12.     var num = i+1;
  13.     //trace(newline+"I: " +i);
  14.     for(j=0; j<nbAttributs; j++){
  15.      tab[i][j] = tab[i].childNodes[j].attributes.value;
  16.      trace("     J: "+j+" "+tab[i][j]);
  17.     }
  18.    }
  19.    //trace(tab);
  20.    //gotoAndPlay("galeries" );
  21.    trace("Nombre de noeuds du tableau retourne : "+tab.length+newline);
  22.           }
  23.  else {// message d'erreur si le xml est introuvable
  24. }
  25. }
  26. trace("FichierXML:"+galerie);
  27. myXML.load(galerie);
  28. return tab;
  29. };

n°1647156
Zedlefou
In cabbage we trust !
Posté le 22-11-2007 à 13:23:52  profilanswer
 

Oui, en fait ton tableau ne peut pas recup les donner puisqu'il faut le temps que le xml se charge. (3fois rien mais ca suffit pour faire chier)
Normalement si tu envois ton tableau avec ca devrait marcher :
 
"chargeGalerieXML("Galerie_webdesign.xml", Tsites);"
 
Ta fonction
"function chargeGalerieXML(galerie:String, tab:Array):Array{"
 
du coup tu peux virer ca
var tab:Array = new Array();
 
Sinon la methode plus simple c'est de placer ton tableau sur _global :
 
_global.Tsites = new Array();
 
Ensuite tu lances ta fonction qui elle charge les données dans  
_global.Tsites
 
Et voilou


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1647173
sarahz
Posté le 22-11-2007 à 13:39:23  profilanswer
 

Ca fait pareil...
 
Meme en passant Tsites en paramètre, il ne remplit pas le tableau...
 
Je te remets le code :
 

Code :
  1. _global.Tsites = new Array();
  2. chargeGalerieXML("Galerie_webdesign.xml", Tsites);


 

Code :
  1. function chargeGalerieXML(galerie:String, tab:Array):Void {
  2. var myXML:XML = new XML();
  3. myXML.ignoreWhite = true;
  4. myXML.onLoad = function(ok) {
  5.  trace(Tsites.length); // renvoit "0" (c'est normal j'entre dans la fonction
  6.  if (ok) {
  7.   tab = this.firstChild.childNodes;
  8.   nbDesign = tab.length;
  9.   trace("****** nbDesign :  "+nbDesign+" "+"rubrique : "+galerie);
  10.   for (i=0; i<nbDesign; i++) {
  11.    var num = i+1;
  12.    //trace(newline+"I: " +i);
  13.    for (j=0; j<nbAttributs; j++) {
  14.     tab[i][j] = tab[i].childNodes[j].attributes.value;
  15.    }
  16.   }
  17.   trace("Nombre de noeuds du tableau retourne : "+tab.length+newline); //renvoit le bon nb
  18.   trace("Nombre de noeuds du tableau retourne : "+Tsites.length+newline); // renvoit toujours "0" (là c'est pas normal par contre)
  19.  } else {
  20.   // message d'erreur si le xml est introuvable
  21.  }
  22. };
  23. myXML.load(galerie);
  24. }


Message édité par sarahz le 22-11-2007 à 14:41:14
n°1647375
sarahz
Posté le 22-11-2007 à 16:15:57  profilanswer
 

Bon, je craque, j'ai créé une fonction par xml à charger (donc une par tableau à créer)... PFffFFFFFFFFFFFFF moi qui était si contente d'avoir l'impression de commencer à capter quelquechose...
 
Antika va vraiment penser que je suis une looseuse mais je craaaaaque !
 
En tout cas si vous avez la solution à mon problème je serais ravie de l'adapter et de virer ces trois fonctions parceque franchement, c'est de l'anticode !
 

n°1647610
antika
Posté le 22-11-2007 à 19:50:13  profilanswer
 

Citation :

Antika va vraiment penser que je suis une looseuse mais je craaaaaque !


 
Meuh non, je te le fais demain, là c speed.

n°1647719
Zedlefou
In cabbage we trust !
Posté le 23-11-2007 à 04:21:01  profilanswer
 

Grosso merdo c'est ca. Il faut juste bien utiliser _global.

Code :
  1. _global.Tsites = new Array();
  2. chargeGalerieXML("Galerie_webdesign.xml" );
  3. function chargeGalerieXML(galerie:String):Void {
  4. var myXML:XML = new XML();
  5. myXML.ignoreWhite = true;
  6. myXML.onLoad = function(ok) {
  7. if (ok) {
  8.   var tab:Array = this.firstChild.childNodes;
  9.   var nbDesign:Number = tab.length;
  10.   trace("****** nbDesign :  "+nbDesign+" "+"rubrique : "+galerie);
  11.   for (i=0; i<nbDesign; i++) {
  12.    var nbAttributs = tab[i].length // Je suppose
  13.    for (j=0; j<nbAttributs; j++) {
  14.      _global.Tsites[i][j] = tab[i].childNodes[j].attributes.value;
  15.    }
  16.   }
  17.   trace( _global.Tsites.length);
  18. } else {
  19.   // message d'erreur si le xml est introuvable
  20. }
  21. };
  22. myXML.load(galerie);
  23. }
 

Ca devrait marcher. La petite difficulté ici, c'est de ne lancer aucune action tant que le XML n'est pas entierement chargé et entré dans ton tableau.

 

Pour ca, soit tu places la fonction qui vient ensuite juste apres > trace( _global.Tsites.length);
soit tu fais un dispatchEvent et tu mets un ecouteur sur ta scene pour savoir ou tu en es. (c'est le mieu)


Message édité par Zedlefou le 23-11-2007 à 04:23:51

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1647881
sarahz
Posté le 23-11-2007 à 12:51:09  profilanswer
 

Salut Zed,
 
Le truc c'est que la fonction chargeGalerieXML a été créée pour pouvoir être appelée plusieurs fois, avec pasage en paramètre du tableau à remplir et du fichier xml... ce que je ne voulais pas faire c est justement mettre "Tsites" dans la fonction... tu vois ce que je veux dire ? Car là ca revient au même que de créer une fonction par tableau à remplir...

n°1647988
Zedlefou
In cabbage we trust !
Posté le 23-11-2007 à 15:34:22  profilanswer
 

ah oui chui con, bon ben attend la reponse d'Antika alors :D
Je connais surement la soluce mais la, ca vuient pas dsl ...


Message édité par Zedlefou le 23-11-2007 à 15:36:59

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1648102
sarahz
Posté le 23-11-2007 à 17:14:47  profilanswer
 

OK. Merci beaucoup de m'aider en tout cas.
 
Pour résumer, tout marchait bien jusqu'à ce que ma fonction :
 
    Tsites = chargeGalerieXML("Galerie_webdesign.xml" );
 
refuse de remplir les données de son "tab" dans Tsites. Tab était le tableau créé à l'interieur de la fonction, un tableau à deux dimensions tab[i][j].
 
La déclaration de Tsites :
 
var Tsites:Array = new Array();
 
Peut être est ce parcequ'il faudrait que j'initialise la structure de Tsites pour qu'il comprenne l'affectation  
Tsites = tab ?


Message édité par sarahz le 23-11-2007 à 17:16:35
n°1648121
antika
Posté le 23-11-2007 à 17:54:03  profilanswer
 

Code :
  1. import mx.utils.Delegate;
  2. import mx.events.EventDispatcher;
  3. class com.sitename.gallery.XMLData {
  4. public var addEventListener:Function;
  5. public var removeEventListener:Function;
  6. private var dispatchEvent:Function;
  7. private var _filename:String;
  8. private var _xml:XML;
  9. private var _data:Object;
  10. public function XMLData() {
  11.  EventDispatcher.initialize(this);
  12. }
  13. public function load( pFilename:String ):Void {
  14.  if( pFilename.length != 0 || pFilename != undefined || pFilename != '' ) {
  15.   _filename = pFilename;
  16.   _xml = new XML();
  17.   _xml.ignoreWhite = true;
  18.   _xml.onLoad = Delegate.create( this , onLoad );
  19.   var _isLoading:Boolean = _xml.load(pFilename);
  20.   if(!_isLoading)
  21.    dispatchEvent({ type:  'onGalleryDataError',
  22.        err_name: 'FILE_ERROR',
  23.        err_msg: pFilename + " couldn't be loaded" });
  24.  } else {
  25.   dispatchEvent({ type:  'onGalleryDataError',
  26.       err_name: 'FILENAME_ERROR',
  27.       err_msg: pFilename + ' is not a valid filename' });
  28.  }
  29. }
  30. private function onLoad( pIsLoaded:Boolean ):Void {
  31.  if(pIsLoaded) {
  32.   // parsing du XML vers une structure légère
  33.   _data = {};
  34.   var _readData:Array = _xml.firstChild.childNodes;
  35.   var _readDataCount:Number = _readData.length;
  36.   for( var i:Number = 0 ; i < _readDataCount ; i++ ) {
  37.    // récupération des catégories
  38.    var _readCat:XMLNode = _readData[i];
  39.    var _loadedCat:Array = _data[_readCat.attributes.name] = [];
  40.    var _readItems:Array = _readCat.childNodes;
  41.    var _readItemsCount:Number = _readItems.length;
  42.    for( var j:Number = 0 ; j < _readItemsCount ; j++ ) {
  43.     // récupération des items de la catégorie courante
  44.     var _loadedItem:Object = {};
  45.     var _readItem:XMLNode = _readItems[j];
  46.     // récupération des attributs
  47.     for( var prop in _readItem.attributes )
  48.      _loadedItem[prop] = _readItem.attributes[prop];
  49.     // récupération des éléments
  50.     var _readSubItems:Array = _readItem.childNodes;
  51.     var _readSubItemsCount:Number = _readSubItems.length;
  52.     for( var k:Number = 0 ; k < _readSubItemsCount ; k++ )
  53.      _loadedItem[_readSubItems[k].nodeName] = _readSubItems[k].firstChild.nodeValue;
  54.     _loadedCat.push(_loadedItem);
  55.    }
  56.   }
  57.   // on efface l'objet XML trop lourd
  58.   delete _xml;
  59.   dispatchEvent({ type:'onGalleryDataLoad' });
  60.  } else {
  61.   dispatchEvent({ type:  'onGalleryDataError',
  62.       err_name: 'PARSE_ERROR',
  63.       err_msg: "couldn't parse " + _filename });
  64.  }
  65. }
  66. private function getCategory( pCategoryName:String ):Array {
  67.  if( _data[pCategoryName] != undefined ) {
  68.   return _data[pCategoryName];
  69.  } else {
  70.   dispatchEvent({ type:  'onGalleryDataError',
  71.       err_name: 'CATEGORY_ERROR',
  72.       err_msg: pCategoryName + ' is not a valid category' });
  73.  }
  74. }
  75. }


 
L'interface c'est :
- XMLData.addEventListener : cf. aide EventDispatcher Adobe
- XMLData.removeEventListener : cf. aide EventDispatcher Adobe
- 2 événements : onGalleryDataError / onGalleryDataLoad,
- XMLData.getCategory( <nom_de_categorie> ):Array : renvoie les données d'une catégorie. Chacun de tes boutons doit implémenter cette méthode. C'est tout.
- j'ai essayé l'initialisation paresseuse avec un __resolve, mais ça fait planter l'EventDispatcher :( Fuck le code propriétaire.  
 
Le XML doit être comme ça :

Code :
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <root>
  3. <!-- rubrique 0 -->
  4. <category name="Photo">
  5.  <item position="0">
  6.   <title><![CDATA[title0rub0]]></title>
  7.   <content><![CDATA[content0rub0]]></content>
  8.  </item>
  9.  <item position="1">
  10.   <title><![CDATA[title1rub0]]></title>
  11.   <content><![CDATA[content1rub1]]></content>
  12.  </item>
  13.  <item position="2">
  14.   <title><![CDATA[title2rub0]]></title>
  15.   <content><![CDATA[content2rub2]]></content>
  16.  </item>
  17. </category>
  18. <!-- rubrique 1 -->
  19. <category name="2D">
  20.  <item position="0">
  21.   <title><![CDATA[title0rub1]]></title>
  22.   <content><![CDATA[content0rub1]]></content>
  23.  </item>
  24.  <item position="1">
  25.   <title><![CDATA[title1rub1]]></title>
  26.   <content><![CDATA[content1rub1]]></content>
  27.  </item>
  28.  <item position="2">
  29.   <title><![CDATA[title2rub1]]></title>
  30.   <content><![CDATA[content2rub1]]></content>
  31.  </item>
  32. </category>
  33. <!-- rubrique 2 -->
  34. <category name="3D">
  35.  <item position="0">
  36.   <title><![CDATA[title0rub2]]></title>
  37.   <content><![CDATA[content0rub2]]></content>
  38.  </item>
  39.  <item position="1">
  40.   <title><![CDATA[title1rub2]]></title>
  41.   <content><![CDATA[content1rub2]]></content>
  42.  </item>
  43.  <item position="2">
  44.   <title><![CDATA[title2rub2]]></title>
  45.   <content><![CDATA[content2rub2]]></content>
  46.  </item>
  47. </category>
  48. </root>


Message édité par antika le 23-11-2007 à 17:59:13
n°1648277
sarahz
Posté le 24-11-2007 à 03:54:08  profilanswer
 

Euh... merci :)

n°1648405
sarahz
Posté le 24-11-2007 à 16:05:27  profilanswer
 

:bounce:


Message édité par sarahz le 24-11-2007 à 16:11:38
n°1648802
Zedlefou
In cabbage we trust !
Posté le 26-11-2007 à 12:17:00  profilanswer
 

Ouuaah la claaasse :D (attention jeu de mot)


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1648833
Zedlefou
In cabbage we trust !
Posté le 26-11-2007 à 12:46:48  profilanswer
 

Au fait quel est l'interet d'utiliser un objet plutot qu'un tableau ?
Et quel l'interet du Delegate ici ? (dsl, j'ai jamais vraiment trouvé d'utilisation a cette classe :/ )
Et dans la politique du decoupage data/events/display, c'est une idee ou tu melanges les 2 premiers ?


Message édité par Zedlefou le 26-11-2007 à 12:49:20

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Aide programmation galerie xml

 

Sujets relatifs
Programmation : pb avec inetaddressAttacher une image a l'aide de SendMessage(BM_SETIMAGE... sous MFC
Programmation : Langage SAP et PLCAide programmation java;: modeliser une blibliotheque urgent svp
petit programme en java = gros souci de programmationBesoin d'aide sur un conteneur pour arbre binaire
La programmation en Kernel cela existe ???Besoin d'aide pour un truc tout simple
probleme avec programmation csharp 
Plus de sujets relatifs à : Aide programmation galerie xml


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR