Javascript new Image()尺寸

时间:2014-02-27 20:18:07

标签: javascript canvas

我有这个绘制到画布的对象,但我似乎无法获得图像的尺寸(宽度/高度)。

var rawr = {
    x: 0,
    y: 0,
    speed: 4,
    height:0,
    img: new Image(),
    url: "https://www.google.co.uk/images/srpr/logo11w.png",
    init: function() { 
        this.img.src=this.url; 
        this.height=this.img.height;
    },
    draw: function() { 
        canvas.drawImage(this.img,this.x,this.y);
    },
    move: function() {
        if(this.y>CANVAS_HEIGHT)
        {
        this.y=this.height*-1;
        }
        this.y+=this.speed;
    }
};

基本上,this.height保持为零,如最初定义的那样。我该如何纠正?

提前致谢, 添

2 个答案:

答案 0 :(得分:3)

如果我正确读取此信息,则在设置src后立即检查高度。尝试在onLoad事件处理程序中执行此操作,以便等待加载图像然后调整图像标记的大小,否则它不知道高度。

答案 1 :(得分:3)

在利用其高度之前,等待图像的上传触发。像这样:

var imagePreloaded = this.img;
imagePreloaded.onload(function(){
   var height = imagePreloaded.height;
})