Я пытаюсь предварительно загрузить набор объектов SVG и отобразить их с помощью CreateJS/PreloadJS. До сих пор я мог отображать объект SVG без предварительной загрузки, но как только я использую LoadQueue из PreloadJS, я не могу заставить свой образец работать.Невозможно предварительно загрузить и отобразить SVG с помощью CreateJS
Знает ли кто-нибудь, что я делаю неправильно здесь? Благодаря!
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>
Здравствуйте Лэнни! Спасибо за все эти подробности! Я пытался создать образец, который люди могли бы использовать для тестирования. Если SVG-файл был размещен на том же сайте, что и код Javascript, сможет ли он получить мой образец? – Martin
Нет, вы не можете передать экземпляр SVG в Bitmap - он не работает с 'drawImage'. Я думал, что так будет, так что стоит посмотреть дальше. Вы можете предварительно загрузить SVG, но для использования в DOM. – Lanny
Я не использую CreateJS, но меня интересует прелоадер и так оглядывается. Видел это и просто думал, что Id указывает на работу ... http://jsfiddle.net/pphd9tmy/. Просто имейте в виду, что если ваша картина svg для изображения, подобного этому, тогда теги изображений в svg с внешними ссылками не будут работать, вам нужно встроить изображение с помощью dataURL (по-видимому .... все еще havent обернулся, чтобы попробовать, лучше кровавый Работа;). Который как раз и является причиной того, что я ищу предварительный загрузчик;) – PAEz