开发者

Flash AS3 XML Listener infinite trigger

开发者 https://www.devze.com 2023-03-17 17:42 出处:网络
I am trying to read a XML file and display its content in a simple list component or at th开发者_高级运维e console.

I am trying to read a XML file and display its content in a simple list component or at th开发者_高级运维e console. The problem is that the event listener is triggered in an infinite loop.

The code:

var myXML:XML;
var myLoader:URLLoader = new URLLoader();

myLoader.addEventListener(Event.COMPLETE, processXML);

myLoader.load(new URLRequest("/songs/songs.xml"));

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

The xml file:

<?xml version="1.0" encoding="utf-8"?>
<Songs>
    <Song>Sleep Away.mp3</Song>
    <Song>Kalimba.mp3</Song>
</Songs>

The output: <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> <Song>Kalimba.mp3</Song> <Song>Sleep Away.mp3</Song> ....


Firstly, is this just on the timeline of the IDE? If so, do you need to add a stop()?

Secondly, you could remove the listener from the loader as soon as the COMPLETE event comes out.

function processXML(e:Event):void {
    myLoader.removeEventListener(Event.COMPLETE, processXML);
    myXML = new XML(e.target.data);
    trace(myXML.*);
}
0

精彩评论

暂无评论...
验证码 换一张
取 消