2012-04-19 15 views
0

私はキャンバスを使って描画アプリケーションを開発しています。 私は消去機能を実装したいと思いますが、シンプルな白いペン、本当のゴムである単純な消去ではありません。キャンバスの消去が機能しない

実際には、アプリケーション上に透明キャンバスが追加されています。描いたときに描いたもの、つまり不透明度を0にすることができます。

私はすでに& stackoverflowのGoogleで検索し、私は見つけること:

コード:JavaScriptを - Sélectionnerは

context.globalCompositeOperation = "destination-out"; 
context.strokeStyle = "rgba(0,0,0,0)"; 

しかし、それはあまりにも、私が示さglobalCompositeOperationの異なるモードを試してみてください...動作しません。 MDNにありますが違いはありません。 お願いします。

答えて

2

消去しようとしているものの上に透明な線を描いているため、動作しません。何もしません。

白い背景があるときに消去するのは簡単ですが、白い部分を描くだけです。しかし、それはあなたが望むものではありません。

ここでは、clearRectを使用してキャンバス上にあるものを削除し、他の図形を上書きするのではなく、

context.clearRect(cursorX, cursorY, brushWidth, brushHeight); 

小さな四角形で表示されますが、ピクセル操作を除いて別の方法はありません。

+0

はい、確かに私がやったことは愚かでした。私はあなたの解決策を試してください – benenutz

+0

それが動作すれば解決としてマーク! – jazzytomato

+0

最後に、このコードは次のように動作します。 context.globalCompositeOperation = "destination-out"; context.strokeStyle = "rgba(0,0,0,0)"; しかし、1つのパラメータ、rgbaの最後のパラメータを変更する必要があります。この行は2Dコンテキストに対して正しいです。 context.strokeStyle = "rgba(0,0,0,1.0)"; これはクールです:) – benenutz

関連する問題