ciao!
ho creato delle funzioncine per disegnare rettangoli su un canvas.
codice:
var canvas;
var context;
var color = 'black';
var disegnoAttivo = false;
var rect = {};
window.onload = function () {
canvas = document.getElementById("prog_disegno");
context = canvas.getContext("2d");
canvas.onmousedown = inizioDisegno;
canvas.onmouseup = interrompoDisegno;
canvas.onmouseout = interrompoDisegno;
canvas.onmousemove = disegno;
};
function inizioDisegno(e) {
rect.startX = e.pageX - this.offsetLeft;
rect.startY = e.pageY - this.offsetTop;
disegnoAttivo = true;
}
function disegno(e) {
if (disegnoAttivo) {
rect.w = (e.pageX - this.offsetLeft) - rect.startX;
rect.h = (e.pageY - this.offsetTop) - rect.startY;
context.clearRect(0, 0, canvas.width, canvas.height); // SE COMMENTO NIENTE TRASPERENZA
context.fillStyle = color;
context.globalAlpha = 0.2;
context.fillRect(rect.startX, rect.startY, rect.w, rect.h);
context.stroke();
}
}
function interrompoDisegno() {
disegnoAttivo = false;
}
il problema è la riga commentata.
se è commentata posso disgnare più quadrati, ma non hanno la trasparenza.
se non è commentata, il rettangolo è trapsarente, ma ne posso avere solo uno sul canvas perchè ogni volta mi pulisce il canvas.
che relazione c'è tra i due??