私はキャンバスに小さな画像を描き、配列にあるすべての人にいくつかのテキストを描こうとしています。私はこのようにやっています
function drawPersonsOnCanvas(canvas, persons) {
var workIcon = '../images/work.png';
var partyIcon = '../images/party.png';
var context = canvas.getContext('2d');
var width = canvas.width;
var height = canvas.height;
// randomizePositions just put every object of array on random position inside canvas
persons = randomizePositions(persons, width, height);
for (var i in persons) {
var person= persons[i];
person['image'] = new Image();
person['image'].src = (person['type'] === 'work') ? workIcon: partyIcon;
person['image'].onload = function() {
context.drawImage(person['image'], person['x'], person['y']);
};
context.strokeText('person ' + person['status'], person['x'], person['y']);
}
}
そして、私は常にマップ上のすべてのテキストを適切な位置に取得し、1つの画像とxとyだけがすべて異なります(配列に5人がいて、onloadなしで試しましたが、機能しません)。何を変更すればよいか知っている人はいますか?