我正在試驗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