Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-02-2008, 09:35   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2005
Beiträge: 6
Audioplayer mit Listendarstellung

Hallo,

'beiße mir seit Tagen die Zähne an folgendem Problem aus:

ich möchte einen MP3 Audioplayer mit Listendarstellung (also alle Songs untereinander und nicht, wie üblich zum Vor/Zurück-klicken).

Also habe ich eine Funktion geschrieben, die ein externes XML korrekt einliest (es wird nur der Titel und Pfad pro Song benötigt) und in zwei Arrays einliest. Das funktioniert soweit auch.

Am Ende soll es (schematisch) so aussehen:

Titel Nr. 1 (anklickbar für PLAY/STOP) und PLAY/STOP Button dahinter MUTE Button
Titel Nr. 2 (anklickbar für PLAY/STOP) und PLAY/STOP Button dahinter MUTE Button
Titel Nr. 3 (anklickbar für PLAY/STOP) und PLAY/STOP Button dahinter MUTE Button
usw.

Gedacht habe ich mir das so:

1. XML parsen und Arrays erzeugen (ok)
2. Anzahl der Songs ermitteln (ok)
3. Alle Songs untereinander ausgeben lassen (dyn.Textfeld) (ok)
4.Transp. Buttons über jeden Song legen lassen (ok)
(ich habe in der Library einen transparenten Button, den ich bei jedem Schleifendurchlauf über alle Songs an eine berechnete Position ausgeben lasse) mit duplicateMovieClip und dabei dynamisch benenne (im aktuellen Fall habe ich bei 3 Testsongs z.B. hitter0_mc, hitter1_mc, hitter2_mc).
Die Berechnung der y Position erfolgt automatisch.
(das funktioniert auch)

Nur jetzt hänge ich seit Tagen fest. Ist mein Ansatz falsch?

Wie bekomme ich denn die PLAY/STOP Funktion in jeden dynamisch erzeugten mc? Außerdem scheint die Variablendef. Probleme zu bereiten, denn sobald ich etwas außerhalb der XML-loaded Funktion schreibe, vergißt er alles. Deshalb habe ich die Arrays ja schon VOR der Funktion erzeugt und auch schon mit _global experimentiert. Aber das hilft alles nichts.

Ich kopiere euch mal den Code rein (alles im 1. Bild/1. Frame, in der Lib ist nur der transp. Button und ein weiterer, den ich mal als MUTE gedacht hatte für hinter die Songs.

// XML laden
var XMLdaten = new XML();//erstellt ein neues XML Objekt
var XMLdaten_titel = []; // Erstellt ein neues Array titels XMLdaten_titel
var XMLdaten_pfad = []; // Erstellt ein neues Array titels XMLdaten_pfad
var startsong=-1; // erster Song;
var ystart=28;var yhoehe=18;var yoffset=0;var button_yoffset=3;

aktuellerTitel = 0;

XMLdaten.ignoreWhite=true; // ignoriert die leerRäume (spaces) in der XML-file
XMLdaten.load("playlist.xml");//lädt das XML-file

XMLdaten.onLoad = function(success) {//wenn die Datei geladen wird
var anz = XMLdaten.firstChild.childNodes.length;

if (success) { //wenn das laden des Files erfolgreich war
for (var i=0; i<anz; i++) {
XMLdaten_titel[i] = XMLdaten.firstChild.childNodes[i].attributes.titel;
XMLdaten_pfad[i] = XMLdaten.firstChild.childNodes[i].attributes.pfad;
}
}



var player:Sound = new Sound(); // neues Sound Objekt "player

_root.output="Anzahl Songs: "+anz+", Start mit Nr. "+(startsong+2);

// Liste ausgeben
for (var j=0; j<anz; j++)
{
_root.output+="\nTitel: \""+XMLdaten_titel[j]+"\" - Pfad: "+XMLdaten_pfad[j];

// y position ermitteln und button setzen
ypos = ystart+(j*yhoehe)+yoffset;
_root.output+=" - y:"+ypos;
_root.stopper_mc._y=ypos;
_root.stopper_mc._x=720;
duplicateMovieClip (_root.stopper_mc, "stopper"+j+"_mc", j);

// hit-area duplizieren und positionieren
duplicateMovieClip (_root.hitter_mc, "hitter"+j+"_mc", j+100);
trace("_root.hitter"+j+"_mc");

button_ypos = (ystart-button_yoffset)+(j*yhoehe)+button_yoffset;
_root.hitter_mc._y=button_ypos+button_yoffset;
_root.hitter_mc._x=0;
_root.hitter_mc._xscale=190;



}

// Sound starten

function abspielen() {
player.onSoundComplete = nextSong(aktuellerTitel);
player.setVolume(75);
player.loadSound(XMLdaten_pfad[aktuellerTitel], true);
player.start();
}


function nextSong() {
trace("next");
aktuellerTitel++;
trace(aktuellerTitel);
player.loadSound(XMLdaten_pfad[aktuellerTitel], true);
player.start();
}

abspielen();
}



Soweit so gut. Nur:
zekkman ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele