Odtwarzacz muzyczny plików MP3 korzystający z listy w pliku XML

Skrypt korzysta z listy plików MP3, które są zawarte w zewnętrznym pliku XML. Plik XML posiada atrybuty dla każdego wpisu takie jak: nazwa, autor oraz ścieżka dostępu. Flash pobiera te informacje oraz rozpoczyna automatycznie odtwarzanie pierwszego w kolejności utworu. Skrypt posiada funkcje pauzy, przycisku następny/poprzedni utwór i wyświetla tytuł oraz autora aktualnie granej piosenki.

 

Jeśli przeczytaliscie już artykuły o dwóch wcześniejszach odtwarzaczach Flash (wersja podstawowa oraz standardowa), to nie będziecie mieli żadnych problemów ze zrozumieniem kodu i w tym skrypcie, za wyjątkiem kodów dotyczących XML. Te trudniejsze części zostały wyjaśnione w formie komentarzy.


UWAGA!

Aby kod działał poprawnie należy umieścić 4 przyciski o nazwach instancji: pause_mc, play_mc, next_mc, prev_mc oraz jedno pole dynamiczne o nazwie instancji pole_txt .



Napisz Artyku³

Listing

//zawartość pliku lista.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<utwory>
 <muzyka autor="demo1" tytul="tytul1" path="music1.mp3"/>
 <muzyka autor="demo2" tytul="tytul02" path="music2.mp3"/>
</utwory>

//kod action script w pierwszej klatce filmu
muzyka = new Sound();
autor = new Array();
tytul = new Array();
path = new Array();
id = new Array();
number = 0;
_root._soundbuftime = 20;

pole_txt.autoSize = true;

//tworzenie obiektu, który odczyta XML plik
xmlData = new XML();
//ignorowanie białych znaków
xmlData.ignoreWhite = true;
//zdarzenie wywoła funkcje loadXML jeśli plik zostanie załadowany do filmu
xmlData.onLoad = loadXML;
//ładowanie pliku xml o nazwie lista.xml
xmlData.load("lista.xml");

stan = "play";

function dopasowanie() {
        pole_txt._x = 88;
        pole_txt._y = 5;
        dlugosc = pole_txt._width;
        setInterval(plywanie, 70);
}

function plywanie() {
        if (pole_txt._x+dlugosc > -0) {
        pole_txt._x = pole_txt._x - 0.5;
        }else{
        pole_txt._x = 88;
        }
}

function loadXML(loaded) {
        //jeśli załadowany to odczytaj informacje o utworach
        if (loaded) {
                //pobieranie każdej piosenki
                for (i=0; i<xmlData.firstChild.childNodes.length; i++) {
                        //[przypisywanie każdej informacji o piosence do tablic
                        id[i] = i;
                        autor[i] = xmlData.firstChild.childNodes[i].attributes.autor;
                        tytul[i] = xmlData.firstChild.childNodes[i].attributes.tytul;
                        path[i] = xmlData.firstChild.childNodes[i].attributes.path;
                        loader_mc._visible = true;
                        muzyka.loadSound(path[number], true);
                       
                        trace(muzyka.getBytesLoaded());
                        zaladowano = muzyka.getBytesLoaded();
                        total = muzyka.getBytesTotal();
                        success = "false";
                        muzyka.onLoad(success = "true");
                        if(success == "true") {
                        loader_mc._visible = false;
                        pole = autor[0]+" - "+tytul[0];
                        muzyka.start();
                        dopasowanie();
                        }
                }
        } else {
                trace("błąd z plikiem");
        }
}

pause_mc.onRelease = function() {
        if (stan == "play") {
                pause_resume = muzyka.position;
        muzyka.stop();
        stan = "pause";
        }
}

play_mc.onRelease = function() {
        if (stan == "pause") {
                muzyka.start(pause_resume / 1000);
        stan = "play";
        }
}

next_mc.onRelease = function() {
        if (number <= id.length-2) {
                muzyka.loadSound(path[++number], true);
        muzyka.start();
                pole = autor[number]+" - "+tytul[number];
                dopasowanie();
        }else{
        }
}

prev_mc.onRelease = function() {
        if (number != 0) {
                muzyka.loadSound(path[--number], true);
        muzyka.start();
                pole = autor[number]+" - "+tytul[number];
                dopasowanie();
        }else{
               
        }
}




Dodano przez: divix
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors