Flash事件未在服务器上触发

时间:2009-10-19 20:20:12

标签: flash actionscript-3 rss

我认为这个问题可能是由于一些奇怪的路径问题;但是,在这种情况下,路径不是相对的。

我有一个基于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);

1 个答案:

答案 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";
}