2016-08-25 2 views
0

このJSコードはコンソールで実行するとうまく動作しますが、パブリックメソッドclean()はキャンバス上のすべてのものを一掃しません。
コードには他の方法がありますが、失敗しているのはクリーニングです。 ctxには値があり、nullではありません。 キャンバスをきれいにするように修正するにはどうすればいいですか?おかげ任意の図からキャンバスを消去する

signRect = function() { 
    let tr_sign = null; 
    let ctx = null; 
    let canvas_sign = null; 
    const makeCanvas =() => { 
    if (canvas_sign) return canvas_sign; 
    canvas_sign = document.createElement('canvas'); 
    canvas_sign.position = 'absolute'; 
    canvas_sign.width = 300; 
    canvas_sign.height = 170; 
    canvas_sign.id = 'signature'; 
    canvas_sign.style.border = '1px solid black'; 
    canvas_sign.style.top = '-75px'; 
    canvas_sign.style.left = '-50px'; 
    canvas_sign.style.opacity = '0.5'; 
    canvas_sign.style.position = 'absolute'; 
    ctx = canvas_sign.getContext('2d'); 
    ctx.fillStyle = "#000"; 
    ctx.lineWidth = 1; 
    return canvas_sign; 
    }; 

    return { 
    clean:() => { 
     ctx.clearRect(0, 0, canvas_sign.width, canvas_sign.height); 
     ctx.beginPath(); 
    } 
    } 
}; 
+0

'makeCanvas()'と 'someNewSignRect.clean()'よりもうまくいけば... –

答えて

0

は、明示的に詳しくthisを参照してくださいパスを閉じていることを確認してください。

それ以外では、canvas.width = canvas.width;「ハック」を使用できます。

関連する問題