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 MX2004] Problème avec un datagrid & xml


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    donc, une bonne chose, je sais déjà que mes bouotns vont ressemblé à ça au niveau du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    btn_a.onPress = function () 
    {
    	var chemin = "/racine/partenaire[@alpha='a']";
    	var personNoeud = mx.xpath.XPathAPI.selectNodeList(myXML.firstChild,chemin);
    	Remplir (personNoeud )
    }
    btn_b.onPress = function () 
    {
    	var chemin = "/racine/partenaire[@alpha='b']";
    	var personNoeud = mx.xpath.XPathAPI.selectNodeList(myXML.firstChild,chemin);
    	Remplir (personNoeud )
    }
    Mais j'ai encore une question concernant cette fonction "remplir" (que je penses prendre). Cette fonction doit recevoir la variable ajuster par mon Xpath.

    Mais globalement, la fonction de départ :

    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
     for (var i = 0; i < l ; i++) 
             { 
                   var cur = node[i] ; // cur est la valeur courante de i 
                   if (cur.nodeName == "partenaire") 
                   { 
                         var subNode:Array = cur.childNodes ; 
                         var item = {} ; 
                          item.index = cur.attributes.index ; 
                          var k:Number = subNode.length ; 
     
                      for (var j:Number = 0 ; j<k ; j++) 
                         { 
                               cur = subNode[j] ; 
                               item[cur.nodeName] = cur.firstChild.nodeValue ; 
                             } 
     
                      data.push(item); 
                      } 
                }
    Celle ci ne devrais pas changer fondamentalement puisque notre variable d 'entrée de la fonction nous permet directement d'avoir nos sociétés voulus ! Est ce que je me trompes ?

    Céd.

  2. #2
    Membre chevronné 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
    Par défaut
    Tu vois .. tu lis pas affolant...
    je te dis d'utiliser l'événement click et tu utilises un onPress !
    Ou alors tu utilises pas du tout l'exemple que tu m'as filé ?

    1 - renommes tous les noms d'occurence des tes boutons
    bt1, bt2, ....., bt26 etc...
    utilise une boucle encore une fois dynamique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function click(ev):Void {
        trace (ev.type + " : " + ev.target) ;
        var target = ev.target ;
        var id = target.id ; // je récupère l'identifiant de mon bouton
     
    }
     
    var nbts = 26 ;
    for (var i:Number = 1 ; i<=26 ; i++) { 
       this["bt"+i].id = i ; // j'enregistre dans une variable id dynamique l'identifiant du bouton
       this["bt"+i].addEventListener("click") ;
    }
    Maintenant on réfléchi 2 secondes.. tu as 26 boutons (chaque lettre de l'alphabet... et tu dois en fonction du bouton afficher la requête d'un XPATH

    Premier truc.. on va récupérer en fonction du numéro du bouton la lettre donc entre 1 et 26 (toutes les lettres de l'alphabet... en fonction de l'identifiant du bouton)
    Un petit test dans un fla à part avant d'aller + loin :
    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
     
    function getCharAt(id:Number) {
    	if (isNaN(id)) throw new Error("'id' not null or not undefined or not NaN") ;
    	var a:Number = 97 ; // code ascii de la lettre a
    	var z:Number = 122 ; // code ascii de la lettre z
    	var code:Number = a + (id-1) ;
    	code = Math.min( Math.max(a, code), z) ;
    	return String.fromCharCode(code) ;
    }
     
    trace (getCharAt(0)) ;
    trace (getCharAt(1)) ;
    trace (getCharAt(26)) ;
    trace (getCharAt(27)) ;
    trace (getCharAt(null)) ;
    Dans le panneau de sortie j'obtiens :
    a
    a
    z
    z
    'id' not null or not undefined or not NaN
    donc une valeur entre 1 et 26 et pas de valeur null, undefined ou NaN sinon cela coupe le script et renvoi un message d'erreur (pratique pour éviter de faire des bêtises)


    donc en gros si je tape getCharAt(0) cela me renvoi la lettre que je cherche. Cela donne dans le code du dessus :
    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 getCharAt(id:Number) {
    	if (isNaN(id)) throw new Error("'id' not null or not undefined or not NaN") ;
    	var a:Number = 97 ; // code ascii de la lettre a
    	var z:Number = 122 ; // code ascii de la lettre z
    	var code:Number = a + (id-1) ;
    	code = Math.min( Math.max(a, code), z) ;
    	return String.fromCharCode(code) ;
    }
     
    function click(ev):Void {
        var target = ev.target ;
        var id = target.id ; // je récupère l'identifiant de mon bouton
        var char:String = getCharAt(id) ;
        trace (ev.type + " : " + ev.target + " >> " + char) ;
        // ici tu lance ta requête XPATH
        // ici tu lances une fonction pour créer un nouveau tableau d'objet
        // ici tu mets à jour le dataProvider du DataGrid
    }
     
    var nbts = 26 ;
    for (var i:Number = 1 ; i<=26 ; i++) { 
       this["bt"+i].id = i ; // j'enregistre dans une variable id dynamique l'identifiant du bouton
       this["bt"+i].addEventListener("click") ;
    }
    Voilà en gros l'algo.. maintenant débrouille toi Je vais pas aller plus loin sinon je vais devoir te faire un devis

    EKA+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    MDR (pour le devis) !

    J'ai beaucoup exaimné ton code, et il y aune chose que je n'ais pas compris : je suis aller voir de nouveau dans l'aide la fonction "click". Et tu l'utilises d'une façon différente que dans la démonstration de l'aide.

    POurrais tu m'expliquer ton raisonnement pour la fonction que tu as crée ?

    PS: je sais lire, mais bon, parfois de travers !

    Céd.

  4. #4
    Membre chevronné 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
    Par défaut
    Hello

    excuse moi il y a une erreur dans mon code.. j'ai oublié de mettre l'objet écouteur en second paramètre de la méthode addEventListener... si je veux que cela soit la scène qui écoute le bouton je dois taper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var nbts = 26 ;
    for (var i:Number = 1 ; i<=26 ; i++) {
       this["bt"+i].id = i ; // j'enregistre dans une variable id dynamique l'identifiant du bouton
       this["bt"+i].addEventListener("click", this) ; // j'ai oublié le this !!
    }
    Essai de bien lire tout ce qui concerne l'API EventDispatcher dans le guide de référence des composants de ton aide Flash
    EKA+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Ok !

    Je crois que c'est la première fois que je comprenais qu'il y avais une erreur quelque part ! Je suis content ! lol !

    Donc pour la requete Xpath, en fait, je dois lui dire de sélectionnez les sociétés dont le nom commence par la lettre que le bouton renvoie, c'est cela ?

    Dis moi que j'ai juste pour une fois ! lol !

    Céd.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Par hasard, elle ressemblerais pas à ça :

    var chemin = "/racine/partenaire[@alpha='a']";

    C'est celle que javais déjà mis sur mes boutons qui étaient faux



    Céd.

  7. #7
    Membre chevronné 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
    Par défaut
    je te donne des idées aprés c'est clair que tu dois définir selon tes boutons ce que tu veux leur faire faire.. en principe sur ce que tu m'as dis tu veux trier par lettre alphabétique les sociétés.. donc oui tu dois pouvoir trouver toutes les sociétés qui ont pour première lettre un a par exemple non ?
    EKA+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    donc ma requete est bonne alors ?

    Il suffit après de la mettre en place avec une fonction qui rempli un tableau avec mes sociétés començant par la lettre voulu, non ?

    Céd.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Oups, c'est pas un 'a' qu'il y a à la fin, mais bien la variable qui défini la lettre!

    Désolé pour l'erreur

    Cédric.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Donc la voilà :

    var chemin = "/racine/partenaire[@alpha='" + char + "']";



    Céd.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Que penses tu de dela : ça a déjà bien avancer, mais ça marche pas encore tout a fait :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    function getCharAt(id:Number) 
    { 
       if (isNaN(id)) throw new Error("'id' not null or not undefined or not NaN") ; 
       var a:Number = 97 ; // code ascii de la lettre a 
       var z:Number = 122 ; // code ascii de la lettre z 
       var code:Number = a + (id-1) ; 
       code = Math.min( Math.max(a, code), z);
       return String.fromCharCode(code) ; 
    } 
     
    function click(ev):Void { 
        var target = ev.target ; 
        var id = target.id ; // je récupère l'identifiant de mon bouton 
        var char:String = getCharAt(id) ; 
        trace (ev.type + " : " + ev.target + " >> " + char) ; 
        var chemin = "/racine/partenaire[@alpha='" + char + "']"; 
       // test by ced
     
       var data:Array = new Array(); // création du tableau data 
       var personNoeud = mx.xpath.XPathAPI.selectNodeList(this.firstChild,chemin);
     
       var node:Array = personNoeud.childNodes ;  // création du tableau ayant les noeuds 
       var l:Number = node.length ; // longeur des noeuds du fichier xml 
     
          for (var i = 0; i < l ; i++) 
             { 
                   var cur = node[i] ; // cur est la valeur courante de i 
                   if (cur.nodeName == "partenaire") 
                   { 
                         var subNode:Array = cur.childNodes ; 
                         var item = {} ; 
                          item.index = cur.attributes.index ; 
                          var k:Number = subNode.length ; 
     
                      for (var j:Number = 0 ; j<k ; j++) 
                         { 
                               cur = subNode[j] ; 
                               item[cur.nodeName] = cur.firstChild.nodeValue ; 
                             } 
     
                      data.push(item); 
                      } 
                } 
     
       // test by ced fin
        grid.dataProvider = data ; // injecter les données dans le modèle du tableau 
        grid.sortItemsBy("raison") ; // tu peux trier ton tableau directement 
    } 
     
    var nbts = 26 ; 
    for (var i:Number = 1 ; i<=26 ; i++) { 
       this["bt"+i].id = i ; // j'enregistre dans une variable id dynamique l'identifiant du bouton 
       this["bt"+i].addEventListener("click", this) ; 
    }
    Voila, je vais continuer de voir où j'ai fait l'erreur

    Céd.

  12. #12
    Membre chevronné 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
    Par défaut
    Regarde de plus prés ton code...
    quand tu tapes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var personNoeud = mx.xpath.XPathAPI.selectNodeList(this.firstChild,chemin);
    "this" dans "this.firstChild" cela cible quel objet ??
    this dans la fonction click... c'est pas ton xml
    Pour tester tu peux juste taper :
    Du coup si tu veux récupérer le xml il faut cibler ta variable x qui est déclarée en local sur ta scène principale....
    Maintenant faut trouver la bonne requête pour trouver tous les élements qui commencent par une lettre...
    PS : si j'étais toi j'utiliserai les classes de XPATH de XFactorStudio
    http://www.xfactorstudio.com/Actionscript/AS2/XPath/
    et pas celles de macromedia....
    Pense à lire leur doc et aussi tout ce qui est ici :
    http://www.w3schools.com/xpath/default.asp

    EKA+

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Pour la classe XPATH de XfactorStudio, je dois juste incorporer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import com.xfactorstudio.xml.xpath.*;
    C'est cela ? Et après je peux utiliser la syntaxe propre à leur méthode ?

    Céd.

  14. #14
    Membre chevronné 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
    Par défaut
    Hello

    Faut installer les classes dans un "classpath ASZ"

    1 - faut récupérer les classes
    2 - tu fais un répertoire pour tes classes persos sur ton disque dure qui sera la racine de ton classPath perso
    3 - tu mets le répertoire complet des classes dedans ... com/.....
    4 - tu vas dans le panneau de propriété de flash dans l'onglet ActionScript
    5 - tu vas dans Paramètres Actionscript2
    6 - tu as une nouvelle fenêtre qui s'ouvre... ne supprime pas ce qu'il y a dans la liste car c'est le classpath par défaut des classes de flash.. ajoute dans la liste ton répertoire perso et le tour est joué... tu peux maintenant utiliser les classes provenant d'autres packages !

    EKA+

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Mais il n'y aura pas de problème de portabilité par la suite si j'éxécute mon programme sur un autre pc, comme il n'y a que moi qui as les classes ?

    [humm.. je crois que j'ai dit une connerie moi là]
    Céd.

  16. #16
    Membre chevronné 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
    Par défaut
    Euh oui ... mais si tu mets le répertoire des classes au niveau de ton fla cela marche aussi
    Dans la liste des classpath tu as une ligne avec un point : .
    le point signifie que cela fonctionne si tu mets les classes au même niveau que ton fla
    En général quand tu bosses sur ta machine vaut mieux ne pas mettre le classpath avec ton fla pour pouvoir généraliser son utilisation partout dans ton ordi... maintenant tout est possible selon tes besoins.
    EKA+

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Ca veux dire que je dois installer mes classes dans un dossier à coté du .fla ? Et sans cela ça en marcherais pas ?

    Céd.

  18. #18
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Salut,
    J'ai survolé le thread, et peut-être que la réponse a été donné.
    En ce qui concerne la récup dans une occurence de label des données selectionnées dans un dataGrid sans aucune ligne de code.
    Une des technique est d'ajouter une liason sur le label (bound to) qui pointe sur l'élèment du schéma du dataSet que tu veux récupérer
    PS ne pas oublier avant d' ajouter à la main dans le schèma du dataSet le champ (syntaxe exacte de ta balise xml)
    @+

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Au fait Eka, pourquoi le class XPATH de chez XfactorStudio est mieux que celle de macromedia ? C'est plus rapide ?C'est mieux pour les recherches dans le XML ?

    ENsuite, si j'ai bien compris, une fois que cette classe sera en place, il suffit de toruver la bonne requete pour que mes boutons fonctionnent , n'est ce pas ?

    Céd.

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Par défaut
    Oki, j'ai réussi a faire le tri par ordre alphabétique !

    Ouf !

    Maintenant, je vais me concentrer pour programmer le bouton qui permet d'afficher l'ensemble des sociétés !

    @ +

    Céd.

    PS : voivi mon code :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    import mx.controls.gridclasses.DataGridColumn; 
    import mx.xpath.XPathAPI; 
    import mx.styles.CSSStyleDeclaration; 
     
    var style:Object = { 
       alternatingRowColors : [0xFFFFFF, 0xECF2F8] , 
       fontSize : 12 , 
       vGridLines : false 
    } 
     
    function getCharAt(id:Number) 
    { 
       if (isNaN(id)) throw new Error("'id' not null or not undefined or not NaN") ; 
       var a:Number = 97 ; // code ascii de la lettre a 
       var z:Number = 122 ; // code ascii de la lettre z 
       var code:Number = a + (id-1) ; 
       code = Math.min( Math.max(a, code), z);
       return String.fromCharCode(code) ; 
    } 
     
    function click(ev):Void { 
        var target = ev.target ; 
        var id = target.id ; // je récupère l'identifiant de mon bouton 
        var char:String = getCharAt(id) ; 
        trace (ev.type + " : " + ev.target + " >> " + char) ; 
        var chemin = "/racine/partenaire[@alpha='" + char + "']";
     
        // test by ced
     
       var data:Array = new Array(); // création du tableau data 
       //var personNoeud:Array = mx.xpath.XPathAPI.selectNodeList(x.firstChild,chemin);
       var node:Array = mx.xpath.XPathAPI.selectNodeList(x.firstChild,chemin);
       //var node:Array = personNoeud.childNodes ;  // création du tableau ayant les noeuds 
       //trace(node);
       var l:Number = node.length ; // longeur des noeuds du fichier xml 
     
          for (var i = 0; i < l ; i++) 
             { 
                   var cur = node[i] ; // cur est la valeur courante de i 
                   if (cur.nodeName == "partenaire") 
                   { 
                         var subNode:Array = cur.childNodes ; 
                         var item = {} ; 
                          item.index = cur.attributes.index ; 
                          var k:Number = subNode.length ; 
     
                      for (var j:Number = 0 ; j<k ; j++) 
                         { 
                               cur = subNode[j] ; 
                               item[cur.nodeName] = cur.firstChild.nodeValue ; 
                             } 
     
                      data.push(item); 
                      } 
                } 
     
       // test by ced fin
        grid.dataProvider = data ; // injecter les données dans le modèle du tableau 
        grid.sortItemsBy("raison") ; // tu peux trier ton tableau directement 
    } 
     
    var nbts = 26 ; 
    for (var i:Number = 1 ; i<=26 ; i++) { 
       this["bt"+i].id = i ; // j'enregistre dans une variable id dynamique l'identifiant du bouton 
       this["bt"+i].addEventListener("click", this) ; 
    } 
     
    for (var prop:String in style) 
    { 
       grid.setStyle(prop, style[prop]) ; // je corrige le nom de l'occurence 
    } 
     
    // themeColor 
    grid.setStyle("themeColor", "haloBlue"); 
     
     
    var cellPress = function( event )  { 
       var target = event.target ; 
       var index = target.selectedIndex ; 
       var item = target.getItemAt(index) ; 
       trace ("----- cellPress") ; 
       for (var prop in item) { 
          this["ta_" + prop].text = item[prop] || "non spécifié" ; 
          trace (prop + " : "+  item[prop]) ; 
       } 
    } 
     
    // la scène principale écoute l'événement cellPress 
    grid.addEventListener("cellPress", this) ; 
     
    var c1:DataGridColumn = new DataGridColumn("raison") ; 
    c1.headerText = "Société" ; 
    c1.width = 180 ; 
    grid.addColumn(c1) ; 
     
     
     
    var x = new XML(); //création de l'objet XML 
    x.ignoreWhite=true; //ignorer les sauts de ligne 
    x.onLoad = function(success) { 
          if (!success && this.status == 0) { 
          trace ("error !") ; 
          return ; 
       } 
     
       var data:Array = new Array(); // création du tableau data 
       var node:Array = this.firstChild.childNodes ;  // création du tableau ayant les noeuds 
       var l:Number = node.length ; // longeur des noeuds du fichier xml 
     
          for (var i = 0; i < l ; i++) 
             { 
                   var cur = node[i] ; // cur est la valeur courante de i 
                   if (cur.nodeName == "partenaire") 
                   { 
                         var subNode:Array = cur.childNodes ; 
                         var item = {} ; 
                          item.index = cur.attributes.index ; 
                          var k:Number = subNode.length ; 
     
                      for (var j:Number = 0 ; j<k ; j++) 
                         { 
                               cur = subNode[j] ; 
                               item[cur.nodeName] = cur.firstChild.nodeValue ; 
                             } 
     
                      data.push(item); 
                      } 
                } 
     
    /* definit le chemin*/
      var chemin = "/racine/partenaire"
      var personNoeud = mx.xpath.XPathAPI.selectNodeList(this.firstChild,chemin);
      Remplir (personNoeud )
    //
     
          grid.dataProvider = data ; // injecter les données dans le modèle du tableau 
          grid.sortItemsBy("raison") ; // tu peux trier ton tableau directement 
     
          nb.text = x.firstChild.childNodes.length; 
     
       } 
     
    x.load("partenaire.xml");
    Comme tu peux le voir, je n'ai pas utiliser le XPATH de Xfactor, mais je vais m'atteler pour en faire une version.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [FLASH MX2004] Problème avec un clip vide
    Par vbcasimir dans le forum Flash
    Réponses: 5
    Dernier message: 10/02/2006, 15h06
  2. [FLASH MX2004] Problème avec d'incrémentation
    Par vbcasimir dans le forum Flash
    Réponses: 6
    Dernier message: 08/02/2006, 16h01
  3. [FLASH MX2004] Problème avec la couleur
    Par Garra dans le forum Flash
    Réponses: 2
    Dernier message: 16/01/2006, 17h23
  4. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  5. [FLASH MX2004] Problème avec fscommand("exec", ...
    Par djo.mos dans le forum Flash
    Réponses: 10
    Dernier message: 24/08/2005, 07h49

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