如何将对象的属性名称传递给drawImage? [英] How to pass object's property name to drawImage?
本文介绍了如何将对象的属性名称传递给drawImage?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要传递该对象的属性名称,称为 source
I need to pass property names of this object called source
Object {
one: "img/20160602_112823_001.jpg",
two: "img/UHEGP 17.1.jpg",
three: "img/UHEGP 17.3.jpg",
badge: "img/badge-gold-big-no-shadow-tilted.png",
top_layer: "img/watermark_bronze_GOLD_Final-70-opacity.png"
}
到 drawImage
函数。
function loadImages(source, callback) {
var images = {};
var loadedImages = 0;
var numImages = 0;
// get num of sources
for (var src in source) {
numImages++;
}
for (var src in source) {
images[src] = new Image();
images[src].onload = function () {
if (++loadedImages >= numImages) {
callback(images);
}
};
images[src].src = source[src];
}
}
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
loadImages(source, function (images) {
for (var key in source) {
context.drawImage(images.key, 0, 0, 921, 680);
context.drawImage(images.top_layer, 0, 0, 921, 57);
context.drawImage(images.badge, 700, -20, 175, 175);
}
});
如果我只是在此处放置属性名称而不涉及循环:
It works if I just put there property name without involving loop:
context.drawImage(images.top_layer, 0, 0, 921, 57);
但是如果我尝试通过循环并将所有属性名称放入<$内,则不会c $ c> key 变量。当我将其传递给 context.drawImage(images.key,0,0,921,680);
无效。
But it doesn't if I try to do it through loop and put all property names inside key
variable. When I pass it to context.drawImage(images.key, 0, 0, 921, 680);
it doesn't work.
推荐答案
使用
var temp = images[key];
而不是
var temp = images.key;
这篇关于如何将对象的属性名称传递给drawImage?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文