如何使用xml文件和AS3将图像,歌曲和艺术家名称添加到Flash播放器?

问题描述:

你好,我需要在我的flash文件上显示一个图像,这是一个音乐播放器,以便我可以放置音乐计分表。玩家从一个XML文件中获取歌曲,这里是我的ActionScript代码:如何使用xml文件和AS3将图像,歌曲和艺术家名称添加到Flash播放器?

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 myArtist = my_songs[mySong][email protected]; 
    var myURL = my_songs[mySong][email protected]; 
    var myImageURL = my_songs[mySong][email protected]; 
var url:URLRequest = new URLRequest(myImageURL); 
var img:Loader = new Loader(); 

img.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); 
img.load(url); 

function loaded(event:Event):void 
{ 
    event.target.removeEventListener(Event.COMPLETE, loaded); 

    var bitmap:Bitmap = event.target.content; 
    addChild(bitmap); 
} 

    title_txt.text = myTitle; 
    artist_txt.text = myArtist; 

    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); 
} 

next_btn.addEventListener(MouseEvent.CLICK, onNext); 
function onNext(e:Event):void { 
    current_song++; 
    if (current_song>=my_total) { 
     current_song=0; 
    } 
    playSong(current_song); 
} 
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); 
} 

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; 
    } 
} 
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); 
    } 
} 

menu_home.addEventListener(MouseEvent.CLICK, fl_ClickToGoToWebPage); 

function fl_ClickToGoToWebPage(event:MouseEvent):void 
{ 
    navigateToURL(new URLRequest("http://www.portugal.gov.pt"), "_blank"); 
} 

fs_btn.addEventListener(MouseEvent.CLICK, fullScreen); 

function fullScreen(event:MouseEvent):void { 
stage.displayState=StageDisplayState.FULL_SCREEN; 
} 

import fl.events.SliderEvent; 
import flash.media.SoundTransform; 

var voltransform:SoundTransform = new SoundTransform(); 
sc.addEventListener(SliderEvent.THUMB_DRAG,changevol); 

function changevol(event:SliderEvent):void{ 

voltransform.volume=sc.value; 
SoundMixer.soundTransform=voltransform; 
} 

和XML如下:

如果你只需要加载图像,然后添加此代码:

var myImageURL = my_songs[mySong][email protected]; 
var url:URLRequest = new URLRequest(myImageURL); 
var img:Loader = new Loader(); 

img.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); 
img.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 
img.load(url); 

function loaded(event:Event):void 
{ 
    event.target.removeEventListener(Event.COMPLETE, loaded); 

    var bitmap:Bitmap = event.target.content; 

    // if "score" is MovieClip and you want to put loaded image there 
    score.addChild(bitmap); 
} 

function ioErrorHandler(event:IOErrorEvent):void { 
    trace("ioErrorHandler: " + event); 
} 
+0

是的,我需要添加图像,因为儿子g名字和艺术家名字已经在每首歌曲上显示txs for answear艰难我需要每首歌曲中的不同图像你知道我该怎么做? – 2015-04-07 01:29:40

+0

你可以把你的playSong函数中的代码?当歌曲开始时它会加载图像。 – Nemi 2015-04-07 09:21:53

+0

更新了帖子上的代码强硬它does not工作,但肯定缺少的东西 – 2015-04-07 16:57:08