2011-12-20 6 views
0

私はAS3を初めて使用しています。私はXMLミュージックプレーヤーを製作しようとしています。理由が不明なため、私がコーディングした音楽プレーヤー(GUIはステージ上に配置されているため、それらのコーディングは含まれていません)は、テキストを表示したり、音楽を再生したりしません。私が今までに持っているコードは次のとおりです:ActionScript3では、XML音楽プレーヤーを作成するにはどうすればよいですか?

var my_songs:XMLList; 
var my_total:Number; 

var my_sound:Sound; 
var my_channel:SoundChannel; 

var current_song:Number = 0; 

var song_position:Number; 
var song_paused:Boolean; 

var myXMLLoader:URLLoader = new URLLoader(); 
myXMLLoader.load(new URLRequest("playlist.xml")); 
myXMLLoader.addEventListener(Event.COMPLETE, processXML); 

function processXML(e:Event):void { 
    var myXML:XML = new XML(e.target.data); 

    my_songs = myXML.SONG; 
    my_total = my_songs.length(); 

    //playSong(0); 

    myXMLLoader.removeEventListener(Event.COMPLETE, processXML); 
    myXMLLoader = null; 

} 

function playSong(mySong:Number):void { 
    var myTitle = my_songs[mySong][email protected]; 
    var myURL = my_songs[mySong][email protected]; 

    title_txt.text = myTitle; 

    if (my_channel) { 
     my_channel.stop(); 
     my_channel.removeEventListener(Event.SOUND_COMPLETE, onNext); 
    } 

    my_sound = new Sound(); 
    my_sound.load(new URLRequest(myURL)); 
    my_channel = my_sound.play(); 
    my_channel.addEventListener(Event.SOUND_COMPLETE, onNext); 
} 
//Jumps to the next track in the list. 
next_btn.addEventListener(MouseEvent.CLICK, onNext); 
function onNext(e:Event):void { 
    current_song++; 
    if (current_song>=my_total) { 
     current_song=0; 
    } 
    playSong(current_song); 
} 
//Jumps position back to previous track in the list. 
prev_btn.addEventListener(MouseEvent.CLICK, onPrev); 
function onPrev(e:MouseEvent):void { 
    current_song--; 
    if (current_song<0) { 
     current_song = my_total-1; 
    } 
    playSong(current_song); 
} 
//Pauses music, causing current song to jump back to the beginning when play resumes. 
pause_btn.addEventListener(MouseEvent.CLICK, onPause); 
function onPause(e:MouseEvent):void { 
    if (my_channel) { 
     song_position = my_channel.position; 
     my_channel.stop(); 
     song_paused=true; 
    } 
} 
//Plays music. 
play_btn.addEventListener(MouseEvent.CLICK, onPlay); 
function onPlay(e:MouseEvent):void { 
    if (song_paused) { 
     my_channel = my_sound.play(song_position); 
     song_paused=false; 
    } else if (!my_channel) { 
     playSong(current_song); 
    } 
} 

誰でもエラーや修正を指摘できれば、それは大いに感謝しています。

+1

エラーが発生しましたか? – Benny

答えて

-1

一見すると、リスナーを追加する前にXMLを読み込んでいるようです。これに

var myXMLLoader:URLLoader = new URLLoader(); 
myXMLLoader.load(new URLRequest("playlist.xml")); 
myXMLLoader.addEventListener(Event.COMPLETE, processXML); 

:これらの行書き換えてみ

それ以外
var myXMLLoader:URLLoader = new URLLoader(); 
myXMLLoader.addEventListener(Event.COMPLETE, processXML); 
myXMLLoader.load(new URLRequest("playlist.xml")); 

を、あなたのコードがうまく動作するようです。

+0

さて、ありがとう!もう少しの誤りがあれば私はあなたに戻ってきます。 – Hamadyne

+0

どうしたの? –

関連する問題