2011-01-19 69 views
0

我使用URLLoader在我的Flex项目中解析XML订阅源,问题是在Evevent.COMPLETE中匹配/检测到已加载订阅源, 我不知道如何传递id或变量或对象标记通过URLloader。 加载图像时,这是通过使用Loader中的name属性解决的,但Loader不适用于XML,您能帮我吗?flex AS3解析多个XML订阅源

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

     } 

回答

1

你可以扩展的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; 
    } 
    } 
} 

然后:

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; 
    } 
} 
+0

好主意!谢谢 – Janci 2011-01-19 16:42:46