我正在试验canvas
元素,但由于某种原因,它不显示我的图像。图片不显示在画布上
我使用下面的代码:
function Canvas() {
this.field = function() {
var battlefield = document.getElementById('battlefield');
var canvas = battlefield.getElementsByTagName('canvas')[0];
return canvas.getContext('2d');
}
}
function Draw(canvas) {
if (!canvas) {
alert('There is no canvas available (yet)!');
return false;
}
this.canvas = canvas;
this.grass = function(pos_x, pos_y) {
var terrain = new Terrain();
var specs = terrain.grass();
var img = new Image();
img.onload = function(){
canvas.drawImage(img, specs.position_x, specs.position_y, specs.dimension_x, specs.dimension_y, pos_x, pos_y, specs.dimension_x, specs.dimension_y);
console.log('success???'); // this is being output
};
img.src = '/img/terrain.png';
}
}
(function() {
var canvas = new Canvas();
var draw = new Draw(canvas.field());
draw.grass();
})();
有没有错误,但形象只是不显示。我已验证图像是否存在,是否存在。我也验证了specs
和他们不包含什么,他们应该:
dimension_x: 25
dimension_y: 25
position_x: 0
position_y: 0
任何想法,我做错了吗?
画布组的宽度和高度是多少?画布元素是DOM树的一部分吗?请创建一个http://jsfiddle.net/演示。 – 2012-01-02 00:15:45
@FelixKling使用CSS:'width:100%;','height:300px;'。 – PeeHaa 2012-01-02 00:17:40
CSS不会帮助,你必须设置'width'和'height'属性/属性。请参阅https://developer.mozilla.org/en/Canvas_tutorial/Basic_usage *编辑*我刚刚读到,画布的默认大小是'300px x 150px',所以这不应该成为问题。 – 2012-01-02 00:18:21