一个画布有多个子图_是否可以在HTML5画布中使用多个图片?

bd96500e110b49cbb3cd949968f18be7.png

I'm trying to load 10 different images into a canvas. My plan is to eventually animate these images but right now they seem to be overwriting one another. Here is my code:

var DrawLetters = function()

{

for (i = 0; i < howManyLetters; i++)

{

thisWidth = letters[i][0];

thisHeight = letters[i][1];

imgSrc = letters[i][2];

letterImg = new Image();

letterImg.onload = function()

{

context.drawImage(letterImg,thisWidth,thisHeight);

}

letterImg.src = imgSrc;

}

};

letters is an array with 10 elements where each element contains a path to the image. Any help on this would be greatly appreciated.

解决方案

I've tried your code and the onload method always use the LAST value of the vars, not the value when the array was iterated.

Try setting the X and the Y to properties of the image object:

// I assume you are storing the coordinates where the letters must be

letterImg.setAtX = letter[i][XPOS];

letterImg.setAtY = letter[i][YPOS];

and on the onload:

context.drawImage(this, this.setAtX, this.setAtY);

this is the image raising the onload event.

Edit I've changed the properties used to carry the coordinates. Now they're setAtX/Y. You cannot use x and y because they're reserved.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值