2011-01-19 68 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