Visualizzazione dei risultati da 1 a 1 su 1

Visualizzazione discussione

  1. #1

    Canvas, clearRect e globalAlpha

    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??
    Ultima modifica di fermat; 13-11-2014 a 12:54

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.