Comment afficher le contenu d'un array ? [Résolu]

Signaler
Messages postés
17
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005
-
Messages postés
1
Date d'inscription
jeudi 15 octobre 2009
Statut
Membre
Dernière intervention
21 décembre 2009
-
Bonjour, ma question est toute simple et bête : après avoir "remplit" un array, j'aimerais en afficher son contenu et l'utiliser :

le tableau :
colone1 colone 2
1 groupe1/sons/morceau.mp3
2 groupe1/sons/coucou.mp3
3 groupe2/sons/music.mp3
4 groupe3/sons/yoyo.mp3

quand je fais :
trace (tableau[3]);

il me sort : [object Object].

pourtant, quand je fais trace(tableauElement.data)
il me sort groupe3/sons/yoyo.mp3. (data est la colone 2).

Alors comment afficher la ligne 2 dans un champ dynamique ??

Merci

camii

13 réponses

Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

trace (tableau);

marchera jamais, trace n'affiche pas d'objet complexes

et oui les tableau commence a 0



si tu veux voir le contenu dans trace faut parcourir le tableau et affiché les elt un a un



var i = 0;

var count = tableau.length

while (i<count){

trace (tableau[i].label+", "+tableau[i].data);

i++;

}


Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter les réponses qui vous conviennent ...
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

ben je sais pas comment t'as
fait ton tableau... mais normallement un trace(tableau[index]) revoins
bien l'élément du du tableau, apres s'il te renvois [Object Object]
c'est que tu a mis un objet et non une chaine de caractere dans ton
tableau.

avec mx 2004, voilà comment on crée et comment on parcour un tableau :



var tableau:Array = new Array();

array.push("groupe1/sons/morceau.mp3");


array.push("groupe1/sons/coucou.mp3");


array.push("groupe2/sons/music.mp3");


array.push("groupe2/sons/yoyo.mp3");



var index = 0;

var count = tableau.length;

while (index < count){

trace (tableau[index]);

index++;

}

++


Flash sans Limites
_Benjy chez kOlapsis


merci de penser a accepter les réponses qui vous conviennent ...
Messages postés
17
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005

avec array.push, peut-on insérer des données dans deux colonnes ?
(dans ton exmple, il me manque les nnuméros 1,2,3,4).
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

ben tes numéros, je pensais que c'ete tes index de champs

si tu met trace (index + " : " + tableau[index]);

il te trace 0,1,2,3

apres si tu veux faire un vrai tableau multidimention, il faut ajouter
un Array ou un Object (Array plus pratique a mon gout) dans chaque
élément du premier Array "tableau"



var tableau:Array = new Array();



var elt1:Array = new Array();

elt1.champ1 = "bonjour";

elt1.champ2 = "au revoir";

tableau.push(elt1);

var elt2..



tu aura alor sun taleau :

tableau

index champ1 champ2

0 "bonjour" "au revoir"



et pour tracer c'est :

trace (tableau[index].nomDeChamp);

ou

trace (tableau[index][sousIndex]); // sin ton tableau n'a pas de nom de
champ par elt1.push("bonjour") a la place de elt1.champ1 = "bonjour"


Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter les réponses qui vous conviennent ...
Messages postés
17
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005

Voilà mon code, ça peut éclairer :

je me suis (bien) basé sur un post de WAVY :

mon fichier php contient :
playing=1;groupe1/sons/morceau.mp3;2;groupe1/sons/coucou.mp3;3;groupe2/sons/music.mp3;4;groupe3/sons/yoyo.mp3

mon fla comprend :

list = new LoadVars();
list.load("playlist.php");
list.onLoad = function (success){
if (success){
trace ("fichier php chargé");
liste = this.playing.split(";");
nombre = liste.length/2;
var tableau:Array = new Array();
for (i=0; i<nombre; i++) {
tableauElement = new Object();
tableauElement.label = liste[2*i];
tableauElement.data = liste[2*i+1];
tableau[i] = tableauElement;
}
trace (tableau);
}}

ce dernier trace me renvoie [object, Object] [object, Object] [object, Object] [object, Object]

Mais en fait, je viens de voir que je peux utiliser les variables liste[2*i(+1)], qui après un trace me renvoie bien évidemment :

1
groupe1/sons/morceau.mp3
2
groupe1/sons/coucou.mp3
3
groupe2/sons/music.mp3
4
groupe3/sons/yoyo.mp3

c'est ce que je cherhais, donc, je crois que mon probleme est résolu quant à la récupération séparée de chaque donnée.

Cela ne règle pas le probleme général de l'array, que je ne comprend toujours pas (pourquoi il me renvoie des object ???)
Messages postés
17
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005

ok j'essaie de suite le truc de ton dernier post.
Messages postés
17
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005

AH OK, si on ne peut pas... la boucle marche autant...

j'aurais peut ete d'autres probleme dans mon projet, toujours relatif au tableau mais pas a son affichage, ça te dérange que je continue à poster icic, pour ne pas ouvrir un autre post ?? (sauf si c'est un sujet utile à d'autre)


Merci encore,


a bientot !


camii
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

no prb

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter les réponses qui vous conviennent ...
Messages postés
17
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005

Re salut !

alors, avant lire rapidemment mon post concernant mon premier probleme.

http://www.flashkod.com/forum.v2.aspx?ID=551820

ensuite, le troisieme probleme :

j'ai donc fait le tableau comme ça :

list = new LoadVars();
list.load("playlist.php");
list.onLoad = function (success){
if (success){
trace ("fichier php chargé");
liste = this.playing.split(";");
nombre = liste.length/2;
var tableau:Array = new Array();
for (i=0; i<nombre; i++) {
tableauElement = new Object();
tableauElement.label = liste[2*i];
tableauElement.data = liste[2*i+1];
tableau[i] = tableauElement;
}
for(i=0; i<nombre; i++)
{
trace (tableau[i].label+","+tableau[i].data);
affich = tableau[2].label+","+tableau[2].data;}
}

jusque là pas grand chose de nouveau. (il y a des lignes bizarres, c'est normal, c'est pour des test, etc...)

Alors que mon mp3 (l'autre post, voir plus haut) était finalement chargé online ou offline avec le code que tu m'avais (toi déjà ! tu es un modérateur ?).

mais maintenant, avec ce code tu tableau, enfin surtout celui de l'import du texte via php, le mp3 est chargé si le php n'est pas interprété par un serveur. Dans l'autre cas, je peux lire les variables contenu dans le php, mais le mp3 ne se charge plus.

Oulala, j'espère que c'est clair....

tu peux m'aider Benjy ?? ou someone else....
Messages postés
17
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005

c'est bon probleme résolu :

au départ, mon code était dans un image.
je l'ai collé dans un movieclip et ai changé :

var tableau:Array = new Array(this);

et là ça marche. PHP interprété et mp3 également chargé en stream.

désolé d'avoir posé la question un peu rapidemment.

camii
Messages postés
17
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005

encore moi, je me bat pour qu'une variable contienne une url, et pas moyen...


le but :
charger un mp3 à partir des adresse contenues dans le tableau. Ex :


_root.lit= tableau[2].data;
audio.loadSound(_root.lit,true);

en affichant _root.lit, il contient "groupe/music.mp3" (sans les guillemets).

en écrivant directement : audio.loadSound("groupe/music.mp3",true); ça marche.

je crois avoir tout essayer. guillement, pas guillements, url complete (http...), concatenation (!) du début de l'url et de la variable... rien.
peut etre tout simplement que audio.loadSound ne comprend pas qu'une variable remplace une url...

chais po...
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

le trace ne marque jamais les guillemets d'une chaine de caracteres ...

ca devrai marcher, je vois pas pourkoi ca marche pas ...

désolé mais tel quel ca marche normallement dois y avoir un autre prob

Flash sans Limites
_Benjy chez kOlapsis
Messages postés
1
Date d'inscription
jeudi 15 octobre 2009
Statut
Membre
Dernière intervention
21 décembre 2009

J'aimerai crée un tableau avec des carrés pour créer une map en AS3
Mais je ne sais pas comment faire ??