有点新的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。
我不是要求直接的解决方案,只是一个解释,因为我忽略了一些东西,因为这对我来说是全新的。
答案 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();
}