简体   繁体   中英

flex AS3 parsing multiple XML feeds

I'm using URLLoader to parse XML feeds in my flex project, problem is matching/detect loaded feed in Evevent.COMPLETE, I don't know how to pass id or variable or object tag through URLloader. When loading images this is solved by using name property in Loader, but Loader didn't work for XML, can you help me?

private function readXmlFeed():void {                                   
            XML.ignoreWhitespace = true;
            var xmlLoader:URLLoader = new URLLoader();                  
            xmlLoader.addEventListener(Event.COMPLETE, parseFeedXMLComplete);           
            xmlLoader.load(new URLRequest(url));                            
        }

 private function parseFeedXMLComplete(e:Event):void {              
            var feed:XML = new XML(e.target.data);

            switch (e.target.name) {
                case "feed1":
                     break;
                case "feed2":
                     break;
            }

        }

You could extend URLLoader :

package {
  import flash.net.URLLoader;
  import flash.net.URLRequest;
  public class FooURLLoader extends URLLoader {
    public var id : String;
    public function FooURLLoader(id : String) {
      super(null);
      this.id = id;
    }
  }
}

Then :

private function readXmlFeed(id:String):void {                                   
  XML.ignoreWhitespace = true;
  var xmlLoader:URLLoader = new FooURLLoader(id);                  
  xmlLoader.addEventListener(Event.COMPLETE, parseFeedXMLComplete);           
  xmlLoader.load(new URLRequest(url));                            
}

private function parseFeedXMLComplete(e:Event):void {              
  var feed:XML = new XML(e.target.data);
  switch (e.target.id) {
    case "feed1":
      break;
    case "feed2";
      break;
  }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM