javascript - CreateJS 中的 PreloadJS 不工作

标签 javascript html createjs

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

这是我的:

<!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>

当我加载页面时,出现此错误:

Access is denied: preloadjs-0.3.0.min.js, line 50 character 333

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

queue.loadFile({id:"myImg", src:"Background.png"});

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

最佳答案

路径类型(绝对/相对)无关紧要,但是您可能从哪里加载它。

默认情况下,PreloadJS 将尝试使用 XHR (XMLHttpRequests) 加载内容,这仅在服务器上加载时有效(file://无效,您应该使用 localhost 代替),并且来自同一域。您可以尝试将 false 作为参数传递给 LoadQueue,让它使用标签加载图像,这样可以绕过大部分错误。


queue = new createjs.LoadQueue(false);

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

关于javascript - CreateJS 中的 PreloadJS 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15995411/

相关文章:

javascript - JQuery:自定义属性关键字选择器

javascript - 如何匹配所有特殊字符并替换为自定义突出显示样式

javascript - img.onerror 似乎不适用于 IE8

javascript - removeChild() 无法使用 easeljs

javascript - 在图像后找到结束 anchor 标记

javascript - 使用 $.grep() 基于自定义过滤器过滤列表

javascript - 将不同尺寸的图像很好地融入拼贴画中

javascript - Node 和/或套接字 io 多人打地鼠

javascript - Animate CC 中的 CreateJS JavasScript 框架脚本

javascript - 如何检测碰撞