2014-08-31 72 views
0

嘗試創建一個鼠標偵聽器到畫布對象時遇到了一個需要很長時間才能解決的問題 - 如何將對象變量(this.X,this.Y)傳遞給事件偵聽器,例如:傳遞對象變量到事件偵聽器

function Test() { 

    this.canvas = .... 

    this.mouseDownHandler = .... 

    canvas.addEventLIstener('mousedown', this.mouseDownListener, false); 
} 

於是我想出了以下解決方案

回答

1

這是解決方案的工作對我來說 -

function Test() { 
    this.ctx = this.canvas.getContext("2d"); 
    var self = this; 
    this.canvas.addEventListener("mousedown", 
     function(e, param) { 
       self.mouseDownHandler(e, param); 
      }.bind(null, this), false); 
} 

Test.prototype.mouseDownHandler = function(t, e) { 
    t.ctx.fillRect(e.pageX, e.pageY, 10, 10); 
};