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

ActionScript 3 Discussion :

Création de plusieurs colonnes dans une List


Sujet :

ActionScript 3

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 56
    Points : 36
    Points
    36
    Par défaut Création de plusieurs colonnes dans une List
    Bonjour !

    Bon ben après moult recherches, ici et ailleurs, je n'ai trouvé aucun tutoriel ou astuces sur ce sujet.. Pourtant, j'ai déjà vu un résultat similaire sur une animation Flash ; voici le soucis :

    J'ai trouvé un tuto pour créer un lecteur MP3 Flash avec playlist, cette dernière étant tirée d'un fichier XML. Ca, c'est pour l'environnement de base, et jusque là, pas de soucis.

    Là où ça pose problème, c'est que cette playlist est faite dynamiquement dans une "List" made-in Flash, et que l'ajout de donnée (Rows) dans cette liste ne comprends que du textuel à peine mis en forme..

    Mon objectif : créer, pour chaque "row", des colonnes comprenant chacune une info : jusque là, chaque ligne est de la forme "musique - artiste", et j'aimerais séparer proprement tout ça de la forme "musique | artiste", le trait vertical symbolisant la séparation des colonnes.

    Mais : comment créer ces colonnes ?

    Je post le code que j'ai jusque là, et qui insère les données dans la List :

    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
     
    stop();
     
    var myFormat:TextFormat = new TextFormat();
    myFormat.color = "0xFFFFFF";
     
    list.setRendererStyle("textFormat", myFormat);
     
    //////////////////////////////////////////////////////////////////////////////////////////////////
     
    // Initialize variables
    var trackToPlay:String;
    var pausePosition:int = 0;
    var songURL:URLRequest;
    var isPlaying:Boolean = false;
    var i:uint;
    // Initialize the XML, place the xml file name, initialize the URLRequest
    // put URLRequest into a new URLLoader, and add event listener on 
    // myLoader listening for when the XML loading is complete
    var myXML:XML = new XML();
    var XML_URL:String = "mp3_playlist.xml";
    var myXMLURL:URLRequest = new URLRequest(XML_URL);
    var myLoader:URLLoader = new URLLoader(myXMLURL);
    myLoader.addEventListener("complete", xmlLoaded);
     
    // Create the xmlLoaded function. What happens when the XML file is fully read
    function xmlLoaded(event:Event):void {
     
        // Place the xml data into the myXML object
        myXML = XML(myLoader.data);
       // Access song 1 in the XML file to start the player
       var firstSong:String = myXML..Song.songTitle[0];
       var firstArtist:String = myXML..Song.songArtist[0];
       songURL = new URLRequest("mp3_files/" + firstSong + ".mp3");
       status_txt.text = "1. "+firstSong +" - "+firstArtist;
    	     // Run the "for each" loop to iterate through all of the song items listed in the external XML file
    	     for each (var Song:XML in myXML..Song) {
     
    			 i++; // Increment the song counter by one
    			 // Access the value of the "itemColor" node in our external XML file
    			 var songTitle:String = Song.songTitle.toString();
    			 // Access the value of the "itemLabel" node in our external XML file
    			 var songArtist:String = Song.songArtist.toString();
    			 // Adds each song into the list component through this loop
    			 list.addItem( { label: i+". "+songTitle+" - "+songArtist, songString: songTitle, Artist: songArtist, songNum: i } );
    			 list.rowHeight = 50;
    	     }
    		 var myArray = new Array (0,0);
             list.selectedIndices = myArray; // This highlights song 1 by default
    		 gotoAndStop(3);
     
    }
    Si quelqu'un connait la marche à suivre, je n'en peux plus de chercher en vain.. Merci d'avance à ceux qui se pencheront sur le sujet !

  2. #2
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    salut

    surement pas avec un List puisqu'il ne peut gerer que du texte sur 1 colonne (a moins de redefinir le composant)
    dans ton cas une DataGrid sera plus utile puisqu'il permet de gerer des colonnes en plus des lignes !
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 56
    Points : 36
    Points
    36
    Par défaut
    Merci pour la réponse rapide !
    Eh bien je ne suis pas sorti d'affaire.. On commence à toucher un domaine que je ne maitrise absolument pas..

    Dans la définition du composant (la liste), je n'ai vu aucune option me permettant de mettre plusieurs colonnes, alors lorsque tu parles de "redéfinir le composant", j'imagine que c'est bien plus complexe que ça. Le DataGrid, ce serait donc ma 2e option, puisque ne maitrisant pas le sujet et sachant à peine ce que c'est, je vais avoir du mal à tout re-transformer ; alors une petite question subsidiaire à tout ça, pour (peut-être) avoir une chance d'obtenir un résultat sympa et plus simplement :

    Peut on mettre en forme le texte dans chaque ligne ? Un formatage HTML par exemple, que je n'ai réussi qu'à faire jusque là que dans une zone de texte, mais peut-être est-ce possible de le spécifier aux alentour du "list.addItem" pour que le "label" soit stylisable ? Où est-ce peine perdue et vais-je devoir refaire un tour de tout les tutos sur le DataGrid..

    Merci encore !

    [Edit] Bon ben les DataGrid ont pas l'air si éloigné des listebox au final, alors j'vais m'y atteler, ce sera plus propre.. Je clos le sujet donc, la question initiale à eu sa réponse !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Persister plusieurs colonnes dans une liste
    Par Lorenzaccio dans le forum JPA
    Réponses: 1
    Dernier message: 22/01/2014, 18h40
  2. enregistrer plusieurs colonnes d'une liste déroulante dans une table
    Par juliejuliejuliejulie dans le forum VBA Access
    Réponses: 5
    Dernier message: 19/06/2012, 18h18
  3. [AC-2007] En-tête de colonne sur plusieurs lignes dans une list box
    Par Rémi GAUDINAT dans le forum IHM
    Réponses: 2
    Dernier message: 25/10/2010, 11h52
  4. Saisie de plusieurs caractère dans une liste déroulante
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/03/2005, 14h32
  5. plusieurs value dans une liste deroulante
    Par lepierre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 16/11/2004, 14h53

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