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'))
と、多くの奇妙な文字が表示されます。これは、解析中の画像ファイルだと思います (?)
別の方法として、プリロード ビットのプロパティとして を設定して、後でorなどid
を介してアクセスできるようにすることもできますが、それを行うには、PreloadJS に既に組み込まれているメソッドが必要だと思います。bg[0]
bg[1]
bg = new createjs.Bitmap('img/'+item.src).set({
x: item.x,
y: item.y,
id: item.id
});