当我尝试使用Loader对象在同一文件夹中加载外部图像时,收到错误SecurityError: Error #2000: No active security context
。
我的代码是:
var urlImg = String("img.jpg");
var imgLoader:Loader = new Loader();
var _lInfo:LoaderInfo = imgLoader.contentLoaderInfo;
_lInfo.addEventListener(Event.COMPLETE, handleComplete);
imgLoader.load(new URLRequest(urlImg));
function handleComplete(evt:Event):void{
trace("handleComplete");
}
为什么不起作用?
答案 0 :(得分:3)
尝试将您的来电更改为加载:
imgLoader.load(new URLRequest(urlImg));
改为:
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
imgLoader.load(new URLRequest(urlImg), context);
否则,您可以在使用mxmlc进行编译时尝试更改use-network属性。在Flash Pro中,在发布设置下,查找“本地播放安全性:”并在“仅限本地文件”或“仅限访问网络”之间切换。
另外,请不要忘记确认您的图片实际上位于正确的文件夹中并且名称为“img.jpg”,而不是“image.jpg”或“img.JPG”或类似名称。
答案 1 :(得分:1)
发生某种类型的安全违规时会抛出SecurityError
异常。
安全错误示例:
来自:http://www.actionscripterrors.com/?p=409
您可以尝试使用此代码:
var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = false;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
var request:URLRequest = new URLRequest(imageUrl);
loader.load(request, context);
答案 2 :(得分:0)
实际上它对我有用。我在第一行只收到警告。
你得到了:
var urlImg = String("img.jpg")
但应该替换为:
var urlImg:String = "img.jpg";
还要确保该文件与您的SWF位于同一目录中。
答案 3 :(得分:0)
var urlImg = String("img.jpg"); var imgLoader:Loader = new Loader(); var _lInfo:LoaderInfo = imgLoader.contentLoaderInfo; _lInfo.addEventListener(Event.COMPLETE, handleComplete); imgLoader.load(new URLRequest(urlImg)); function handleComplete(evt:Event):void { trace("handleComplete"); var mc:MovieClip = new MovieClip(); addChild(mc); mc.addChild(imgLoader.content); }
工作正常。
我认为网址位置可能有误。并使用IOErrorEvent类并找出错误。
答案 4 :(得分:0)
假设您发布的代码不是您实际使用的代码 我遇到过这个问题,并注意到在分配源的同一行上连接URL的错误。
// bad code
imageObj.source = partialURL1 + partialURL2 + partialURL3;
//good code
var someURL:String = partialURL1 + partialURL2 + partialURL3
imageObj.source = someURL;
答案 5 :(得分:0)
另外请务必注意您的寻址规则。在HTML代码中工作的地址可能无法在actionsrcipt中工作。特别是在子文件夹方面。出于某种原因,这通常被报告为安全错误而不是URL未找到错误。