我认为这个问题可能是由于一些奇怪的路径问题;但是,在这种情况下,路径不是相对的。
我有一个基于AS3的rss聚合器。当我测试影片剪辑时,它在flash中工作;但是,当我把它放在服务器上时它就不再起作用了......
我用过“taLog.htmlText =”开始“;”和类似的字符串来测试它停止的位置。我想rssLoaded事件永远不会被调用,这意味着feed没有被加载,这很奇怪,因为它在其他地方工作正常....
var rssLoader:URLLoader = new URLLoader();
var rssURL:URLRequest = new URLRequest("http://www.rssfeedblahblah.com");
rssLoader.addEventListener(Event.COMPLETE, rssLoaded);
rssLoader.load(rssURL);
taLog.htmlText = "Start";
var rssXML:XML = new XML();
rssXML.ignoreWhitespace = true;
function rssLoaded(evt:Event):void{
taLog.htmlText = "Loaded";
rssXML=XML(rssLoader.data);
taLog.htmlText = rssXML;
for(var item:String in rssXML.channel.item) {
liLog.addItem({label:rssXML.channel.item[item].title})
}
}
function selectLog(evt:Event):void {
taLog.htmlText = rssXML.channel.item[ evt.target.selectedIndex ].description;
}
liLog.addEventListener(Event.CHANGE, selectLog);
答案 0 :(得分:0)
你确定它不是securityError
吗?在urlloader上侦听io错误和安全性错误,看看它们是否被触发。考虑附加(使用=
)而不是替换日志文本(使用+=
),以确保不会覆盖日志消息(确保taLog是多行的)。
rssLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
rssLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
function securityErrorHandler(e:SecurityErrorEvent):void
{
taLog.htmlText += "<br/>security error";
}
function ioErrorHandler(e:IOErrorEvent):void
{
taLog.htmlText += "<br/>io error";
}