Actionscript 3 Don';使用Flash CS 5.5发布时,不要将xml数据加载到列表中
我建立了一个flash视频播放器,它在导出到swf时运行良好。但是,当我发布它时(F12)不会加载xml文件。结果,视频播放器卡在第2帧上(在第2帧上显示了一个包含视频标题的列表,并通过单击标题播放特定视频)。xml链接不以.xml结尾。下面是我关于xml加载的代码。我试图将Flash Player从10.2更改为9,但我也遇到了同样的问题。此外,我认为第2帧中的一些按钮不起作用,因为xml加载导致“卡住”(在swf中导出时工作正常!) Flash播放器版本:10.2,动作脚本:3.0,Flash Professional CS 5.5,fps:24,尺寸:850px(宽)x480px(高)。来自第2帧的代码。谢谢你们的时间,伙计们Actionscript 3 Don';使用Flash CS 5.5发布时,不要将xml数据加载到列表中,actionscript-3,flash,flash-cs5.5,Actionscript 3,Flash,Flash Cs5.5,我建立了一个flash视频播放器,它在导出到swf时运行良好。但是,当我发布它时(F12)不会加载xml文件。结果,视频播放器卡在第2帧上(在第2帧上显示了一个包含视频标题的列表,并通过单击标题播放特定视频)。xml链接不以.xml结尾。下面是我关于xml加载的代码。我试图将Flash Player从10.2更改为9,但我也遇到了同样的问题。此外,我认为第2帧中的一些按钮不起作用,因为xml加载导致“卡住”(在swf中导出时工作正常!) Flash播放器版本:10.2,动作脚本:3.0,Flas
Security.allowDomain( "*" );
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import fl.controls.Label;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
var request:URLRequest = new URLRequest("http://www.olympiacos.org/feeds/videos")
loader.load(request);
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError)
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError)
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus2)
function onIOError(evt:IOErrorEvent){
trace("IOError: "+evt.text);
}
function onHTTPStatus2(evt:HTTPStatusEvent){
trace("HTTPStatus: "+evt.status);
}
function onSecurityError(evt:SecurityErrorEvent){
trace("SecurityError: "+evt.text);
}
function handleComplete(event:Event):void
{
try
{
var rawXML:XML = new XML(event.target.data);
trace(rawXML);
var list:XMLList = rawXML.channel.item;
for (var i:uint=0; i<list.length(); i++)
{
t_text.text = list.title.text()[i];
var data1:String = (list[i].description);
var srcRegExp:RegExp = /src="(.*?)"/;
var data2:String = srcRegExp.exec(data1)[1];
var lwr = data2.search(/1_/i);
var her = lwr + 10;
var data3 = data2.substring(lwr,her);
trace("Entry Id"+i+": "+data3);
List1.addItem({label:list.title.text()[i],data:data3});
}
}
catch (e:TypeError)
{
//Could not convert the data, probavlu because
//because is not formated correctly
trace("Could not parse the XML");
trace(e.message);
}
}
List1.addEventListener(Event.CHANGE, itemChange);
openbtn.addEventListener(MouseEvent.CLICK, opentween);
closebtn.addEventListener(MouseEvent.CLICK, closetween);
closebtn.visible=true;
openbtn.visible=false;
function itemChange(e:Event):void
{
if ( currentFrame == 2)
{
trace("Video selected");
gotoAndPlay(3);
}
t_text.text = List1.selectedItem.label;
var videoslcd = List1.selectedItem.data;
}
stop();
Security.allowDomain(“*”);
导入flash.net.urloader;
导入flash.net.URLRequest;
导入flash.events.Event;
进口fl.controls.Label;
变量加载器:URLLoader=新的URLLoader();
loader.dataFormat=URLLoaderDataFormat.TEXT;
变量请求:URLRequest=新的URLRequest(“http://www.olympiacos.org/feeds/videos")
加载(请求);
loader.addEventListener(Event.COMPLETE、handleComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR,onIOError)
loader.addEventListener(SecurityErrorEvent.SECURITY\u错误,onSecurityError)
loader.addEventListener(HTTPStatusEvent.HTTP_状态,onHTTPStatus2)
函数错误(evt:IOErrorEvent){
跟踪(“IOError:+evt.text”);
}
HttpStatus2上的函数(evt:HTTPStatusEvent){
跟踪(“HTTPStatus:+evt.status”);
}
函数onSecurityError(evt:SecurityErrorEvent){
跟踪(“安全性错误:+evt.text”);
}
函数handleComplete(事件:事件):void
{
尝试
{
var rawXML:XML=newxml(event.target.data);
跟踪(rawXML);
变量列表:XMLList=rawXML.channel.item;
对于(var i:uint=0;i关于播放安全性的发布设置是什么?应为“仅访问网络”
Adrian我将本地播放安全性更改为仅访问网络,但仍然继续未加载的xml列表。使用此播放安全性更改,发布时Frame2上的按钮现在可以了!!有些奇怪。我知道你说你不需要扩展名,应该可以工作,但你也尝试过使用.xml扩展名吗?嗯,我改变了带有(下载并存储在宿主文件中的xml文件)的xml扩展名,但问题是!!!您是否可以使用某种外部insterface js调用,以便在出现TypeError、onIOError或onSecurityError时提示错误警报?还有一件事:您是否通过打开swf或包含swf的html进行测试?