Question

So i finally got my flash application to work and have it running on a website but after a while the dynamic text stops showing up in the fields. The file is set to loop every 5 seconds and it is supposed to update to show the staff on air and what is currently playing. Link to the website is http://mischieffm.com/

var xmlData:XML = new XML();
var header:URLRequestHeader = new URLRequestHeader("pragma", "no-cache");
var theURL_ur:URLRequest = new URLRequest ("/stream/shout.xml?rnd=" + Math.random());
var loader_ul:URLLoader = new URLLoader(theURL_ur);
loader_ul.addEventListener("complete", fileLoaded);



function fileLoaded(e:Event):void
{
 xmlData = XML(loader_ul.data);

 show_txt.text = xmlData.SERVERTITLE;
 song_txt.text = xmlData.SONGTITLE;

}

This is all done in cs6 flash pro and actionscript 3

Was it helpful?

Solution

Try this:

        function fileLoaded(e:Event):void
        {
            loader_ul.removeEventListener("complete", fileLoaded);
            xmlData = new XML(loader_ul.data);
            if (xmlData.SONGTITLE && xmlData.SERVERTITLE)
            {
                show_txt.text = xmlData.SERVERTITLE;
                song_txt.text = xmlData.SONGTITLE;
            }
            else
            {
                show_txt.text = "Untitled artist";
                song_txt.text = "Untitled song";
            }
        }

Note: In order to prevent memory leaks, always call removeEventListener("someEvent", someMethod); after your event gets dispatched. There are some exclusions, but generally you should do it all the time.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top