TypeError: Error #2007: Parameter url must be non-null. at flash.media::Sound/_load()
Im trying to make a MP3 player that gets the file from a XML hosted on my webpage. The FLA file has 3 keyframes with code.
I have a list from component panel called list, and a dynamic text field called status_txt
I can excecute the program, but when I click a channel in the list I get this error:
TypeError: Error #2007: Parameter url must be non-null.
at flash.media::Sound/_load()
at flash.media::Sound/load()
at PlayingSoundFromXMLfileWeb_fla::MainTimeline/frame3()[PlayingSoundFromXMLfileWeb_fla.MainTimeline::frame3:12]
Doesnt matter what channel I excecute.
Keyframe1:
stop();
import fl.controls.List;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.Event;
list.width=stage.stageWidth;
list.height=600
list.x=(stage.stageWidth - list.width)/2;
list.y=0;
list.rowHeight=50;
var myFormat:TextFormat = new TextFormat();
myFormat.color="0xFFFFFF";
list.setRendererStyle("textFormat",myFormat);
var trackToPlay:String;
var pausePosition:int=0;
var songURL:URLRequest;
var i:uint;
var myXML:XML =new XML();
var XML_URL:String ="http://blogglista.no/something.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
function xmlLoaded(event:Event):void{
myXML = XML(myLoader.data);
var firstSong:String = myXML..Song.songTitle[0];
var firstArtist:String = myXML..Song.songArtist[0];
var firstURL:String= myXML..Song.songURL[0];
songURL = new URLRequest(firstURL);
status_txt.text ="1. " +firstSong + "- "+firstArtist;
for each (var Song:XML in myXML..Song){
i++;
var songTitle:String = Song.songTitle.toString();
var songsongURL:String = Song.songURL.toString();
var songArtist:String=Song.songArtist.toString();
//songURL = Song.songURL.toString();
list.addItem({label: i+"."+songTitle+"-"+songArtist, songString: songsongURL,Artist: songArtist, songNum: i});
}
var myArray = new Array(0,0);
list.selectedIndices= myArray;
gotoAndStop(3);
}
Then the second keyframe has this code:
import flash.net.URLRequest;
songURL = new URLRequest(trackToPlay);
And finally the third keyframe has this code:
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundLoaderContext;
import flash.events.Event;
stop();
var snd:Sound=new Sound();
var channel:SoundChannel;
var context:SoundLoaderContext= new SoundLoaderContext(5000, true);
snd.load(songURL, context);
channel = snd.play(pausePosition);
list.addEventListener(Event.CHANGE, itemClick);
function itemClick(event:Event):void{
channel.stop();
status_txt.text = "Now Playing: " + event.target.selectedItem.label + ".mp3";
trackToPlay = event.target.selectedItem.songURL;
//trace(event.target.selectedItem);
trace(event.target.selectedItem.songString);
gotoAndPlay(2);
}
My mission is to import quite a lot of stream URLs.
