我正在使用 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('door').visible = false; preload.getResult('door', true).visible = false;
我曾假设我可以通过这种方式引用实例并更改它们的值。是我应该在预加载段中添加的东西还是我以错误的方式引用图像?如果我做 a console.log(preload.getResult('door'))
,我会得到很多奇怪的字符,我认为这是正在解析的图像文件(?)
另一种方法是将 设置id
为预加载位中的属性,以便我以后可以通过bg[0]
orbg[1]
等访问它,但我想 PreloadJS 中必须有一个方法可以让我这样做。
bg = new createjs.Bitmap('img/'+item.src).set({
x: item.x,
y: item.y,
id: item.id
});