【问题标题】:Flex XML Object not being set未设置 Flex XML 对象
【发布时间】:2013-04-24 17:08:24
【问题描述】:

对 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。

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

【问题讨论】:

    标签: xml flash apache-flex actionscript rss


    【解决方案1】:

    问题似乎是您没有在单击事件处理程序中调用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();
    
    }
    

    【讨论】:

    • 您说得对。我在发帖后问了我的导师一段时间,他也告诉我同样的事情。示例按我的意图工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    相关资源
    最近更新 更多