【发布时间】:2012-06-21 10:05:48
【问题描述】:
我正在尝试在 HTML5 Canvas 上绘制一系列图像。 例如 - 对于 APPLE 这个词,我试图将 5 张图片 - A.png、B.png、C.png 等串联起来以显示这个词。我的代码如下:
var x = 100;
var word = "APPLE";
var imageArray = new Array();
for (var i = 0; i < word.length; i++) {
imageArray[i] = new Image();
imageArray[i].onload = function() {
context.drawImage(imageArray[i], x, 25, 70, 70); // canvas context
x += 80;
};
imageArray[i].src = "images/"+word.charAt(i)+".png";
}
我得到一个错误 -
javascript Uncaught TypeError: 类型错误
有人可以解释一下为什么会这样吗?实现这一目标的最佳方法是什么?
【问题讨论】:
-
您尝试画
this吗?您正在遭受 JavaScript 没有块作用域的困扰。 -
当参数大于字符串的长度时,charAt 是否不返回任何内容,因此当您尝试绘制较高的 'i' 值时,它使用 404 作为图像而不是有效的图像文件? (因为苹果只有 5 个字符,而你的循环到了 10 个)
-
更正了问题。为了简单起见,我将 i
标签: javascript html canvas drawing