Loader-Class - SecurityError:错误#2000:没有活动的安全上下文

时间:2011-09-13 16:28:06

标签: actionscript-3 security flash-cs5 loader

当我加载一些图像时,我试图“捕获”此错误。 以下代码是我的问题的测试用例,以确保周围代码中没有错误。

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的跟踪。 你知道什么是错的吗?

1 个答案:

答案 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()