Я предварительно загружаю свои изображения с помощью PreloadJS, а после этого вывожу их как дочерние элементы контейнера в HTML5 Canvas (ни одно из них не будет доступно для DOM). Что я хотел бы знать сейчас, так это то, как я могу получить эти растровые изображения позже?
var preload = new createjs.LoadQueue(true, 'img/');
var manifest = [
{src: 'fred.png', id: 'pri', type: 'sprite', x: 400, y: 500},
{src: 'banana.png', id: 'door', type: 'sprite', x: 300, y: 500},
]
preload.addEventListener('progress', handleProgress);
preload.addEventListener('complete', handleComplete);
preload.addEventListener('fileload', handleFileLoad);
preload.loadManifest(manifest);
var image = [];
function handleProgress(event) {
}
function handleComplete(event) {
for(var i = 0; i < image.length; i++) {
var item = image[i];
bg = new createjs.Bitmap('img/'+item.src).set({
x: item.x,
y: item.y
});
world.addChild(bg);
}
canvas.update();
}
function handleFileLoad(event) {
image.push(event.item);
}
То, что я пробовал, не работает preload.getItem('door').visible = false; preload.getResult('дверь').visible = false; preload.getResult('дверь', true).visible = false;
Я предполагал, что таким образом могу ссылаться на экземпляры и изменять их значения. Это что-то, что я должен добавить в сегмент предварительной загрузки, или я неправильно ссылаюсь на изображения? Если я делаю console.log(preload.getResult('door'))
, я получаю много странных символов, которые, я думаю, являются анализируемым файлом изображения (?)
Другим способом может быть установка id
в качестве свойства в бите предварительной загрузки, чтобы я мог позже получить к нему доступ через bg[0]
или bg[1]
и т. д., но я полагаю, что для этого должен быть уже встроенный в PreloadJS метод.
bg = new createjs.Bitmap('img/'+item.src).set({
x: item.x,
y: item.y,
id: item.id
});
preload.getResult('door')
не работает... Он должен вернуть вам ссылку на изображение. - person Lanny   schedule 25.06.2013