0
所以我有我的畫筆和橡皮擦工具。我遇到的問題是,起初我可以在畫布上繪製草圖,但在切換到橡皮擦後,如果再次選擇畫筆,它會保留在橡皮擦工具中。我嘗試使用,如果其他但不能使它的工作。無法切換回畫筆工具在畫布上進行繪製
tool = new brushTool();
$('#brushTool').click(brushTool);
function brushTool() {
var tool = this;
this.mouseStart = false;
$('#eraserTool').click(eraserTool);
function eraserTool() {
context.globalCompositeOperation = "destination-out";
context.strokeStyle = "rgba(0,0,0,1)";
}
this.mousedown = function (e) {
tool.mouseStart = true;
context.beginPath();
context.moveTo(x, y);
context.lineTo(x,y);
context.lineCap = 'round';
context.lineWidth = document.getElementById('brush_size').value;
context.strokeStyle = document.getElementById('color').value;
context.stroke();
};
this.mousemove = function (e) {
if (tool.mouseStart) {
context.lineTo(x, y);
context.stroke();
}
};
this.mouseup = function (e) {
if (tool.mouseStart) {
tool.mousemove(e);
tool.mouseStart = false;
}
};
}
感謝您的詳細解釋和小提琴!幫助了我很多! 我只是想知道,是否有可能在函數Tool()之外聲明類方法而不使用原型? – lifeisgood 2013-04-11 02:17:52
嗯...添加到類原型的方式......你爲什麼不想這樣做的任何理由?你**可以**添加方法到你已經新建的工具對象,如下所示:var t = new Tool(); t.addedFn = function(){alert(「new」); }; t.addedFn(); [運行得很好!]。但是如果你想在你的工具類上創建**變體** - 比方說一個刷子是漸變而不是純色的工具類,那麼你應該檢查一下javascript類的「繼承」。 – markE 2013-04-11 04:24:25
沒理由。我只是比較有和沒有原型的區別,因爲我對原型的使用有些模糊。 是的。我有添加漸變到畫筆的想法,但還沒有弄清楚如何。所以,謝謝你的開局。 – lifeisgood 2013-04-11 05:01:21