我正在尝试为我们的工作中的显示器创建一个屏幕保护程序。图像将被上传到外部服务器,从那个服务器我将拉动图像和xml文件。所以我的Flash应用程序和我的内容将在两个不同的地方。我收到错误“SecurityError:Error#2000:No active security context”。如何覆盖错误并将图像放到舞台上。
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML;
var imageList:XMLList;
var imageLoader:Loader = new Loader();
var timer:Timer =new Timer(5000);
var imageIndex:uint = 0;
var child:DisplayObject;
var path:String="http://bgxserv03.mgmmirage.org/interactivemedia/mmhub01/test/mb/edit_bay/hr/infoscreen/servamb/";
xmlLoader.load(new URLRequest(path +"output.xml"));
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
timer.addEventListener(TimerEvent.TIMER, tick);
function xmlLoaded(e:Event) {
xmlData = new XML ( e.target.data);
imageList = xmlData.image.name;
timer.start();
loadImage(imageList[0]);
}
function imageLoaded(e:Event){
if (child){
myImageHolder.removeChild(child);
}
child = myImageHolder.addChild(imageLoader);
Tweener.addTween(child, {alpha:0, time:1, delay:4});
Tweener.addTween(child, {alpha:1, time:1, delay:5});
}
function loadImage(path:String){
imageLoader.load(new URLRequest( path +"photos/"));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);
}
任何帮助都会深深体会到。谢谢。
答案 0 :(得分:0)
您需要将“Crossdomain.XML”放在服务器的根目录中。这将允许您的Flash文件从该服务器访问数据(在您的情况下为图像)。您可以从以下URL获取示例xml,为您的服务器自定义它: Sample CrossDomain.XML
答案 1 :(得分:0)
您缺少的可能是image / xml文件域中的crossdomain.xml策略文件。
使用this link创建一个crossdomain.xml文件,并将其添加到您的image / xml域的根目录,如下所示:“http://bgxserv03.mgmmirage.org/crossdomain.xml”
URLLoader load()函数自动检查crossdomain.xml。 Loader类要求您指定您有兴趣检查发送到load()函数的LoaderContext对象中的策略文件。
在您的代码中,看起来错误应该来自URLLoader xml文件请求,因为它看起来不像您试图以任何方式访问图像的位图数据,这通常会抛出图像文件的安全性错误。如果图像加载部分出现问题,请完成以下说明,然后设置为:
在loadImage函数中,在load方法调用中添加一个LoaderContext参数:
function loadImage(path:String){
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.checkPolicyFile = true;
imageLoader.load(new URLRequest( path +"photos/"), loaderContext);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);
}
查看spec以获取有关如何使用Loader类的更多信息。
如果您遇到任何问题,this thread可能会有所帮助。