Probleme de child qui ne veut pas s'afficher dans un movieclip....

omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009 - 31 oct. 2009 à 15:00
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 31 oct. 2009 à 17:05
bonjours,
mon probleme est le suivent:
pour créer une liste de mp3, voici le code que j'ai;

var directory=File.documentsDirectory;
var txtFilter=new FileFilter(".mp3","*.mp3");
var listeFichiers:Array=new Array();
bt.addEventListener(MouseEvent.MOUSE_DOWN,ouvrirfichier);
function ouvrirfichier(e:MouseEvent) {
try {
directory.browseForOpenMultiple("Open", [txtFilter]);
directory.addEventListener(FileListEvent.SELECT_MULTIPLE, filesSelected);
} catch (error) {
trace("Failed:", error.message);
}
}
function filesSelected(event) {
for (var i = 0; i < event.files.length; i++) {
listeFichiers.push(event.files[i]);
}
refreshPl();

}
var pl:MovieClip=new MovieClip();
addChild(pl);
function refreshPl(){
removeChild(pl);
pl=new MovieClip();
var titre;
for (var i = 0; i < listeFichiers.length; i++) {
titre=new title();
titre.y=15*i;
titre.texte.text=listeFichiers[i].name;
pl.addChild(titre);
}
addChild(pl);
}


ça, ça marche, le probleme, c'est quand je rajoute que les childs apparaissent dans un movieclip déja éxistant (bareinf.fenetre.),là, ca marche plus....

var directory=File.documentsDirectory;
var txtFilter=new FileFilter(".mp3","*.mp3");
var listeFichiers:Array=new Array();
bt.addEventListener(MouseEvent.MOUSE_DOWN,ouvrirfichier);
function ouvrirfichier(e:MouseEvent) {
try {
directory.browseForOpenMultiple("Open", [txtFilter]);
directory.addEventListener(FileListEvent.SELECT_MULTIPLE, filesSelected);
} catch (error) {
trace("Failed:", error.message);
}
}
function filesSelected(event) {
for (var i = 0; i < event.files.length; i++) {
listeFichiers.push(event.files[i]);
}
refreshPl();

}
var pl:MovieClip=new MovieClip();
bareinf.fenetre.addChild(pl);
function refreshPl(){
bareinf.fenetre.removeChild(pl);
pl=new MovieClip();
var titre;
for (var i = 0; i < listeFichiers.length; i++) {
titre=new title();
titre.y=15*i;
titre.texte.text=listeFichiers[i].name;
bareinf.fenetre.pl.addChild(titre);
}
bareinf.fenetre.addChild(pl);
}



quelqu'un a une idée?
merci...

5 réponses

omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
31 oct. 2009 à 15:05
j'ai oublié de préciser, c'est pour AIR
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
31 oct. 2009 à 15:10
question :

Pourquoi faire un "remove" de "pl", puis un "new" juste pour faire un "add" derrière ?
Ne serait-il pas plus simple de vider l'objet pour le re-remplir après ?

Ensuite, n'oublies pas que les Sprites sont bien plus léger à gérer que les movieClip.. moi même je n'en utilise plus depuis plusieurs années.

Peg'
0
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
31 oct. 2009 à 15:18
c'est pour rafraichir la liste quand on remet des fichiers...

c'est pour faire un lecteur mp3, en fait je voudrai que ma playliste apparait a un endroit précis, mais là, j'arive seulement a la faire aparaitre a 0.0 sur la scene principale....
0
omnipotato Messages postés 19 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 1 novembre 2009
31 oct. 2009 à 15:45
alors à ce moment la, comment je crée un sprite la ou je veux pour que la playliste apparaisse là ou je veux?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
31 oct. 2009 à 17:05
Il suffit de remplacer "new MovieClip()" par "new Sprite()" lors de ta création de liste.

Et pour la remplir, pas besoin de la recréer, tu remove tout les child qu'elle contiens et tu les recrées.
Une fois crée et placée en X et Y ou tu veux plus de soucis.

Peg'
0
Rejoignez-nous