2013-04-30 71 views
0

flex和actionscripts有點新,但我試圖獲得以下示例代碼,我修改了一下以便創建一個XML對象。未設置Flex XML對象

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
    <s:BasicLayout/> 
</fx:Declarations> 
<fx:Script> 
    <![CDATA[ 
     public var rssXML:XML = new XML(); 
     public var XML_URL:String="http://services.explorecalifornia.org/rss/tours.php"; 
     public var myXMLURL:URLRequest = new URLRequest(XML_URL); 
     public var myLoader:URLLoader = new URLLoader(myXMLURL);    

     function loadXML():void 
     { 
      myLoader.addEventListener("complete", xmlLoaded); 
      trace("Check"); 
      trace(rssXML.rss.channel.item.toString()); 
      xmlDisplay.text = rssXML.valueOf().toString(); 
     } 


     function xmlLoaded(event:Event):void 
     { 
      rssXML = XML(myLoader.data); 
      trace(rssXML.toString()); 
     } 
    ]]> 
</fx:Script> 
<s:VGroup> 
    <s:Button label="Load XML Object" click="loadXML()"/> 
    <s:Label id="xmlDisplay" text="Nothing"/> 
</s:VGroup> 

我使用的URL是一個RSS饋送樣本數據,http://services.explorecalifornia.org/rss/tours.php

當跑應顯示一個按鈕,當按下時,將設置rssXML與來自的URLRequest然後響應XML的示例用標籤顯示它。

但是我始終變得空白。當我把一個斷點放在跟蹤(「檢查」); RSS仍然是一個通用的新的簡單XML對象,而不是我期望的響應XML。

我不是要求一個直接的解決方案,只是一個解釋,因爲有一些我忽略,因爲這對我來說都是新的。

回答

1

的問題似乎是,你有沒有叫你的Click事件處理URLLoaderload()方法:

function loadXML():void 
{ 
    myLoader.addEventListener("complete", xmlLoaded); 
    myLoader.load(myXMLURL); 
} 

除此之外,您應該設置Label的文字在你的「完成「事件處理程序方法(不在您的點擊處理程序方法中):

function xmlLoaded(event:Event):void 
{ 
    rssXML = XML(myLoader.data); 
    trace(rssXML.toString()); 
    xmlDisplay.text = rssXML.toString(); 

} 
+0

您先生是正確的。在我發佈這篇文章之後,我問了我的導師,他告訴我同樣的事情。示例按我的意圖工作。 – DrTran 2013-04-30 19:18:18