我使用PreloadJS預加載圖像,然後將它們作爲HTML5 Canvas中的容器的子代輸出(其中任何一個都不可用DOM)。我現在想知道的是我以後如何檢索這些位圖?如何在PreloadJS中預加載引用圖像
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( '門')可見=假。 preload.getResult('door')。visible = false; preload.getResult('door',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')'不起作用......它應該返回給你一個圖像引用。 – Lanny