【发布时间】:2012-03-22 09:42:21
【问题描述】:
我正在尝试在 HTML 画布上绘制图像:
var mainCanvas = document.getElementById('mainCanvas');
var ctx = mainCanvas.getContext('2d');
我提出一个 ajax 请求,并解析从中获得的 xml 数据(完美运行),然后当我在画布上绘制不同的形状时,它也可以 100% 运行。 以下代码中的图像绘制不起作用:
$(data).find('Object').each(function(){
type = $(this).attr('type');
x = $(this).attr('X');
y = $(this).attr('Y');
switch(type){
case '2':
height = h_panel;
width = w_panel;
ctx.fillStyle = sColor;
ctx.fillRect(x,y,width,height);
break;
case '1':
var powerFactoryImg = new Image();
powerFactoryImg.onload = function(){
alert('test');
ctx.drawImage(powerFactoryImg,x,y,90,80);
};
powerFactoryImg.src = 'images/power_factory.png';
break;
//Other cases go here - they draw rectangles - all of them work
}
});
我使用 Chrome 开发者工具检查了图片正在加载;此外,正在调用 .onload 中的警报。该代码在 Chrome 和 FF 中均无效。 这里可能有什么问题?
谢谢
【问题讨论】:
-
鉴于正在加载图像,问题出在其他地方而不是您提供的代码中,或者您正在画布边界之外绘制图像,因此您看不到它。或者在上面画点什么?
-
在onload中检查x和y的值:alert('test: ' + x + ', ' + y);
标签: javascript html canvas html5-canvas