【问题标题】:Preloadjs isn't loading images/bitmaps correctlyPreloadjs 没有正确加载图像/位图
【发布时间】:2014-07-18 14:54:06
【问题描述】:

我正在尝试预加载图像,然后将它们放入位图中。这是在服务器上,并且 src 是正确的。不确定到底发生了什么?我是 preloadjs 的新手。我似乎无法检索图像以使用它。它们来自相同的确切来源,但一个有效,另一个无效,我可以写到画布上,它工作得很好吗?

function handleComplete(){
    var ret = new createjs.Text("hi!", "24px sans-serif");
        ret.x = 5;
        ret.y = 5;
        stage.addChild(ret);

    var image = preload.getResult("imgC");
    var pic =  new createjs.Bitmap(image); //this doesn't?
    stage.addChild(pic);
    stage.update();

    $('img').attr("src", "extra/DNA/c.png");//this works
    $('img').attr("src", image); //doesn't work
}

preload.on("complete", handleComplete(), this);
preload.loadFile({id:"imgC", src:"extra/DNA/c.png"});

我注意到 Chrome 出现了一些错误:

加载资源失败:net::ERR_BLOCKED_BY_CLIENT

未捕获的类型错误:无法读取未定义的属性“handleEvent”

和火狐:

typeError: b 未定义(参考 preloadjs 第 12 行)

【问题讨论】:

    标签: bitmapimage easeljs createjs preloading


    【解决方案1】:

    可能无法通过 XHR (xmlhttprequests) 加载内容,preloadJS 默认使用 XHR 加载图像。尝试使用useXHR=false 初始化队列。如果你使用 EaselJS 位图中的路径加载图片,它只是做一个图片标签请求,不受跨域问题的影响。

    var queue = new createjs.LoadQueue(false);
    // other load code here
    

    【讨论】:

    • 这个选项帮助解决了这个问题,谢谢。你知道为什么 XHR 不能加载内容吗?在我的情况下,这些只是存储在同一服务器中的普通 png/jpg 文件,在大多数浏览器上都可以正常工作,但无法被某些 Android 设备的浏览器加载。
    • 有趣,我不知道为什么会这样。可能是浏览器把它当作本地文件什么的。
    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 2017-12-30
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多