0

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>

我使用的 URL 是带有示例数据的 RSS 提要,http://services.explorecalifornia.org/rss/tours.php

运行时的示例应显示一个按钮,单击时将使用来自 URLrequest 的响应 xml 设置 rssXML,然后将其与标签一起显示。

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

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

4

1 回答 1

1

问题似乎是您没有在 click 事件处理程序中调用load()方法:URLLoader

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

}
于 2013-04-30T18:38:40.657 回答