1

私は HTML5 を使用してゲームの作成に取り組んでおり、私の仕事では通常 onmouseover と onmouseout に基づいてキャンバスのコンテンツを更新しています。onmouseoverで私はそれをやっています

                    cxt.beginPath();
                    cxt.moveTo(10, 10);
                    cxt.lineTo(40, 40);
                    cxt.moveTo(40, 10);
                    cxt.lineTo(10, 40);
                    cxt.stroke();
                    cxt.closePath();
                    content[canvasNumber - 1] = 'Value';

現在、onmouseout イベントで、現在のコンテンツをオーバーライドせずにそのキャンバスのコンテンツをクリアしたい !!、どうすればそれを行うことができますか?!

4

1 に答える 1

3

言いたいことはわかると思いますが、言葉遣いにはもう少し注意が必要です。あなたは言う:

現在のコンテンツを上書きせずに!!

でも今描いた×現在の内容です!本当の言いたいことは「前にあった内容をクリアせずに」ということだと思います。

もちろん、私たちは常にあなたの質問に答えるために最善を尽くしますが、質問するときは正確で慎重な言葉を使うように努めてください. 英語はあなたの第一言語ではないかもしれませんし、おそらく私が第二言語を話すよりも英語の方が上手に話せます。私たちが理解していることを確認するだけでも価値があります。

ありがとう!今答えに。


以前に存在したコンテンツを上書きせずに X をクリアしたい場合は、以前に存在したコンテンツを保存する必要があります。

キャンバス ビットマップを保存するには、「インメモリ キャンバス」または「オフスクリーン キャンバス」と呼ばれるものを使用できます。これらを使用して作成document.createElementし、DOM に追加することはありません

mouseover発生時にビットマップを保存し、発生時にそのビットマップを復元するコード例を次に示しmouseoutます。

http://jsfiddle.net/simonsarris/uRXeN/

于 2012-07-01T01:33:17.773 に答える