首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateJS中的PreloadJS不工作

CreateJS中的PreloadJS不工作
EN

Stack Overflow用户
提问于 2013-04-14 11:20:23
回答 1查看 5.3K关注 0票数 4

我正在尝试学习使用PreloadJS预加载图像。

这就是我所拥有的:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <script src="easeljs-0.6.0.min.js"></script>
    <script src="preloadjs-0.3.0.min.js"></script>
    <script src="soundjs-0.4.0.min.js"></script>    
    <script>
        var stage, output, queue;
        function handleComplete() {
            var backgroundImage=new createjs.Bitmap("myImg");
            stage.addChild(backgroundImage);
            stage.update();
        }
        function init() {
            stage = new createjs.Stage("demoCanvas");
            queue = new createjs.LoadQueue();
            queue.installPlugin(createjs.Sound);
            queue.addEventListener("complete", handleComplete);
            queue.loadFile({id:"myImg", src:"Background.png"});
        }
    </script>
</head>
<body onLoad="init();">
    <canvas id="demoCanvas" width="1300" height="600">
        Your browser does not support canvas
    </canvas>
</body>
</html>

当我加载页面时,我得到这个错误:

代码语言:javascript
复制
Access is denied: preloadjs-0.3.0.min.js, line 50 character 333

我跟踪了调用堆栈,发现错误是从以下行生成的:

代码语言:javascript
复制
queue.loadFile({id:"myImg", src:"Background.png"});

你能告诉我我哪里错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-15 09:32:07

路径类型(绝对/相对)应该无关紧要,无论您从哪里加载它。

默认情况下,PreloadJS会尝试使用XHR (XMLHttpRequests)从相同的域加载内容,而XHR (file:// )只有在服务器上加载时才有效(file://将不起作用,您应该使用localhost )。您可以尝试将false作为参数传递给LoadQueue,让它使用标签加载图像,从而避免了大多数错误。

代码语言:javascript
复制
queue = new createjs.LoadQueue(false);

但是,您通常从XHR加载中得到的错误是跨域错误,而不是“访问被拒绝”。如果是从文件系统加载,请确保文件不是只读的,或者有某种保护。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15995411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档