Mã cho tẩy minh bạch sử dụng globalCompositeOperation "điểm đến-out" và "nguồn-over"
var handleMouseMove = function (event) {
midPt = new createjs.Point(oldPt.x + stage.mouseX>>1, oldPt.y+stage.mouseY>>1);
if(curTool.type=="eraser"){
var tempcanvas = document.getElementById('drawcanvas');
var tempctx=tempcanvas.getContext("2d");
tempctx.beginPath();
tempctx.globalCompositeOperation = "destination-out";
tempctx.arc(midPt.x, midPt.y, 20, 0, Math.PI * 2, false);
tempctx.fill();
tempctx.closePath();
tempctx.globalCompositeOperation = "source-over";
drawingCanvas.graphics.clear();
// keep updating the array for points
arrMidPtx.push(midPt.x);
arrMidPty.push(midPt.y);
stage.addChild(drawingCanvas);
stage.update();
}
Tôi đã sử dụng easeljs đây tuy nhiên mã này là độc lập với nó và có thể được tích hợp với bất kỳ javascript vẽ canvas html5 mã số
Nó không hoạt động. Các 'bút chì tẩy' vẫn vẽ màu đỏ (màu của bút chì vẽ thực tế). – Valentina
thử đặt màu đơn giản là "trong suốt" (http://dev.w3.org/csswg/css3-color/#transparent), hoặc có thể là "kiểu chữ" thay vì "fillstyle" – Javier
= (Không có gì. Tôi đã thử cả hai context.strokeStyle = "rgba (0,0,0,0)"; và context.fillStyle = "rgba (0,0,0,0)" ;. Bất kỳ ý tưởng nào? – Valentina