JS加载图像
问题描述:
我有这样的代码JS加载图像
var a = new Image();
a.src = objects.a.image;
var b = new Image();
b.src = objects.b.image;
var x = new Image();
x.src = objects.x.image;
我有大约10相似图片,有没有更好的办法将其加载到变量?
答
这应该工作
for(var i in objects)
{
if(objects[i].image)
{
var oImage = new Image();
oImage.src = objects[i].image;
// if you need the Image object you can store it somewhere
objects[i].oImgObject = oImage;
}
}
+0
这看起来像对我来说最好的方式谢谢 – dontHaveName 2013-03-28 09:08:05
答
假设objects
只包含图片,试试这个:
var imageList = [];
for (var i in objects) {
var obj = objects[i];
var img = new Image();
img.src = obj.image;
imageList.push(img);
}
+0
或者,如果它包含超过图像,添加一个'if(obj.image){/ *设置img.src * /}' – Tetaxa 2013-03-28 09:03:34
答
您通常会使用一个数组来存储您的图像。
例如:
var arr = [];
for (var c='a'.charCodeAt(0); c<='x'.charCodeAt(0); c++) {
var img = new Image();
img.src = objects[String.fromCharCode(c)].image;
arr.push(img);
}
如果你真的需要它们作为变量添加到全球范围内,你可以这样做:
for (var c='a'.charCodeAt(0); c<='x'.charCodeAt(0); c++) {
var img = new Image();
var name = String.fromCharCode(c);
img.src = objects[name].image;
window[name] = img; // better use somthing's else than window...
}
需要注意的是根据什么真的是objects
,有可能是更直接的解决方案。
答
您可以遍历对象对象的属性。每次迭代创建一个新图像,并为其提供对象上属性的来源。然后将其添加到阵列:
var arrayOfImg = [];
for(var propt in objects){
var image = new Image();
image.src = objects[propt].image;
arrayOfImg.push(image)
}
console.log(arrayOfImg);
什么对象? – 2013-03-28 09:00:01
可使用数组风格 – 2013-03-28 09:00:34
VAR对象= { \t \t \t 'A':{ \t \t \t \t '形象': '1.png' \t \t \t}} – dontHaveName 2013-03-28 09:01:24