使用EaselJS位图时捕获错误的URL

时间:2015-03-30 23:47:30

标签: javascript error-handling easeljs

在尝试将URL加载到createjs.Bitmap之前,有没有办法检查URL是否会导致有效图像?我一直试图抓住错误网址的错误(在Firefox中),但由于某些原因无效。

    try {

        image = new createjs.Bitmap ( "image" );

    } catch ( err ) {

        console.log ( "oops" );
        return null;

    }

当我在Firefox中运行此代码时,错误仍显示在控制台中,并且记录的消息不会出现。我的问题是,有没有办法预先验证网址?

2 个答案:

答案 0 :(得分:0)

如果图像不好,未定义,为空等 - 它将 throw出错,因此try / catch将不执行任何操作。

如果您使用PreloadJS(CreateJS套件的一部分)来加载图像,您可以侦听error事件,如果任何图像无法加载(或超时),队列将抛出该事件)。

var queue = new createjs.LoadQueue();
queue.on("error", handleError);
queue.loadFile("404image.png");

目前没有使用原始Bitmap实例的内置方法来确定是否发生错误。通过字符串路径传递给Bitmap的图像不会被预加载,而只是使用Image实例在内部请求。

答案 1 :(得分:0)

您可以使用普通的JS来检测是否可以加载图像,如果是,则将该实例传递给EaselJS Bitmap

var img = new Image();
img.onload = function() {
    console.log('img loaded');
    var bitmap = new createjs.Bitmap(img);
}
img.onerror = function() {
    console.log('error');
} 
img.src = 'notexistingimage.png';