Ja alles drin.
Hab das nun doch nochmal mit nem Timer statt ner For-Schleife probiert (deswegen vorhin auch die Anmerkung).
"delete song" funktioniert nicht - somit alle Soundobjekte in ein anderes, neuangelegtes Objekt rein und dann mit delete sofort wieder entfernt.
Eine total hässliche Lösung, aber immerhin funktioniert es so mehr oder weniger, wie es soll.. Sind nun nur noch 20 Dateien die nicht geladen werden, aber da hab ich bestimmt einfach irgendwo einen Fehler reingehauen, den ich wohl noch finden werde. Ich hoffe dennoch, dass noch iwer ne gescheite Lösung hat an sonstens lass ich es erstmal so.
Kann später den Code reineditieren, damit die "Lösung" für alle zugänglich ist.
edit:
Code:
private function getFiles(dir:File):void
{
var files:Array=dir.getDirectoryListing();
for(var i:int=0;i<files.length;i++)
{
var file:File=files[i];
if (file.isDirectory) getFiles(file);
else if (file.extension=="mp3"||file.extension=="wma"||file.extension=="MP3")
{
temp.addItem(file);
}
}
}
private function onTick(event:Event):void
{
delete obj.song;
obj.song=new Sound();
obj.song.load(new URLRequest(temp[timer.currentCount-1].url));
obj.song.addEventListener(Event.ID3,onID3);
}
private function onClick():void
{
timer.delay=.5;
timer.repeatCount=temp.length;
timer.addEventListener(TimerEvent.TIMER,onTick);
timer.start();
}
private function onID3(event:Event):void
{
var id3:ID3Info=new ID3Info;
id3=event.target.id3;
playlist.addItem({col1:id3.artist,col2:id3.songName,col3:playlist.length,col4:event.target.url});
label1.text=playlist.length.toString();
event.target.close();
} onClick wird erstmal ausgeführt, wenn ich auf einen weiteren Button klicke (nur zu Testzwecken)