未设置Flex XML对象

时间:2013-04-30 17:28:33

标签: xml flash flex actionscript rss

有点新的flex和actionscripts,但我正在尝试获取以下示例代码,我修改了一下来拉取并创建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>

我正在使用的网址是带有示例数据http://services.explorecalifornia.org/rss/tours.php

的RSS Feed

运行时的示例应该显示一个按钮,当单击时,将使用URLrequest中的响应xml设置rssXML,然后使用标签显示它。

但是我不断变得空白。当我在断点处放置一个断点(“Check”); RSS仍然是一个通用的新简单XML对象,而不是我期望的响应XML。

我不是要求直接的解决方案,只是一个解释,因为我忽略了一些东西,因为这对我来说是全新的。

1 个答案:

答案 0 :(得分:1)

问题似乎是您没有在点击事件处理程序中调用URLLoader的{​​{3}}方法:

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();

}