当我加载一些图像时,我试图“捕获”此错误。 以下代码是我的问题的测试用例,以确保周围代码中没有错误。
import flash.events.SecurityErrorEvent;
import flash.display.Loader;
import flash.net.URLRequest;
loadImage ();
function loadImage (): void {
var _imageLoader = new Loader();
_imageLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, imageSecurityErrorEventListener);
var request:URLRequest = new URLRequest("this-image-not-exits.jpg");
_imageLoader.load(request);
}
function imageSecurityErrorEventListener (e:SecurityErrorEvent) {
trace ("This is my own trace for the Security Error");
}
我知道www和这里有很多帖子和问题,但我找不到问题的答案。
我正在制作一部带有许多图像和电影的互动电影,这些电影会在应用程序中动态加载。
在这段剪辑中,我在我的应用程序中生成了最糟糕的情况(尝试加载不存在的图像)。 当我运行此代码时,我得到跟踪“SecurityError:Error#2000:No active security context”而不是我的Listener的跟踪。 你知道什么是错的吗?
答案 0 :(得分:0)
该特定安全错误抛出,而不是作为ErrorEvent
发送。
可以使用try...catch
块来检测它:
function loadImage (): void
{
var _imageLoader = new Loader();
_imageLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, imageSecurityErrorEventListener);
var request:URLRequest = new URLRequest("this-image-not-exits.jpg");
try
{
_imageLoader.load(request);
}
catch (error:Error)
{
trace("A different error was thrown, not dispatched as an ErrorEvent");
}
}
有关作为事件抛出或分派的所有错误的完整列表,请参阅Adobe语言参考页:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#load()