Probleme de child qui ne veut pas s'afficher dans un movieclip....
omnipotato
Messages postés19Date d'inscriptionlundi 19 janvier 2009StatutMembreDernière intervention 1 novembre 2009
-
31 oct. 2009 à 15:00
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDerniè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...
A voir également:
Probleme de child qui ne veut pas s'afficher dans un movieclip....
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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.
omnipotato
Messages postés19Date d'inscriptionlundi 19 janvier 2009StatutMembreDerniè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....
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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.