我正在尝试预加载一组 SVG 对象并使用 CreateJS/PreloadJS 显示它们。到目前为止,我能够在不预加载的情况下显示 SVG 对象,但是一旦我使用 PreloadJS 中的 LoadQueue,我就无法让我的示例工作。
有人知道我在这里做错了什么吗?谢谢!
http://jsfiddle.net/trudeo/05eqqp49/
JavaScript
var imageManifest = [
{ id: "MySvgImage", src: "http://dev.w3.org/SVG/tools/svgweb/samples/svg-files/check.svg" }
];
var stage = new createjs.Stage(document.getElementById('gameCanvas'));
var assetQueue = new createjs.LoadQueue(true);
assetQueue.loadManifest(imageManifest);
assetQueue.on('complete', complete);
function complete(e) {
// DOESN'T WORK
var svgImage = new createjs.Bitmap(assetQueue.getResult('MySvgImage'));
stage.addChild(svgImage);
// WORKS
var svgImage2 = new createjs.Bitmap("http://dev.w3.org/SVG/tools/svgweb/samples/svg-files/circles1.svg");
stage.addChild(svgImage2);
stage.update();
createjs.Ticker.setFPS(40);
createjs.Ticker.addListener(tick);
}
function tick() {
stage.update();
}
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<script src="http://code.createjs.com/createjs-2013.12.12.min.js"></script>
<script src="http://code.createjs.com/preloadjs-0.4.1.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<canvas id="gameCanvas" width="800" height="800"></canvas>
</body>
</html>
我找到了简单的解决方案。只需强制 PreloadJS 使用图像加载器,而不是 SVGLoader。
{src:"img/bg.svg", id:"bg", type: createjs.LoadQueue.IMAGE}
然后你就可以转换它
var bg = new createjs.Bitmap(loader.getResult('bg'));
stage.addChild(bg);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)