我正在添加一个图像对象作为类的属性,我当前的方法如下:
Arrow = function(src) {
this.spriteArrow = new Image();
this.spriteArrow.src = src;
}
如果我创建箭头类的多个实例,它会多次加载相同的图像吗?或者应该在箭头类的范围之外创建te图像,以便它只创建一次?
答案 0 :(得分:1)
这可能不合标准,但你在评论中提出的问题需要自己的答案。
保持图像分离的一个好处是您可以自己管理资源加载。例如:(伪代码!不要复制粘贴)
var listOfResources = ['Arrow.png', 'character.png'];
foreach resource in listOfResources: {
var img = new Image()
img.src = resource
var onloadCalls = [];
img.onLoad = function: foreach call in onLoadCalls: call();
function addCall(call) { onLoadCalls.push(call); }
loadingResources[resource] = {
img: img,
onLoad: addCall
};
}
// anything that wants to wait until Arrow.png is ready calls this:
loadingResources['Arrow.png'].onLoad(function() ...blah...);
如果这对你没有多大意义,那么它可能并不重要,但对于大规模HTML5游戏可能很有用,因为很多东西都会尽快激活,而不是等待为每个要加载的资源。