私はイベントのアークを作成して削除しようとしていますが、パーツを追加することはうまく動作し、配列に保存していますので、何とかイベントリスナーを呼び出すと削除できます。キャンバスでの削除
<script>
var myCanvas = document.getElementById("myCanvas");
myCanvas.width = window.innerWidth;
myCanvas.height = 500;
var c = myCanvas.getContext("2d");
var myArr = [];
myCanvas.addEventListener("click", function(){
var x = event.x;
var y = event.y;
var radius = 10;
myArr.push(new CreateCircle(x, y, radius, "#34495e"));
console.log(myArr);
});
window.addEventListener('keydown', function(){
myArr.splice(0,1);
console.log(myArr);
});
function CreateCircle(x, y, radius, color) {
this.x = x;
this.y = y;
this.radius = radius;
this.color = color;
this.draw = function() {
c.beginPath();
c.arc(this.x, this.y, this.radius, 0, Math.PI*2);
c.fillStyle = this.color;
c.fill();
}
this.draw();
}
</script>
は私がどのように行う、コンストラクタ関数で削除機能を追加し、keydownのイベントでそれを呼び出す必要があります:配列の値は、そのキャンバスに更新されない コードデクリメントされているのようにコンソールで罰金それをやって行く/それを固定する?
のように、それは幅だリセットしてキャンバスをオフにして、配列に基づいて再描画可能性があり配列を更新するには、キャンバスを更新しないでください。 – adeneo
を更新するために完全な再描画が必要ですか?私はフォローしない?リフレッシュ機能のような? – tankit88
キャンバスから何かを削除したい場合は、キャンバス全体を再描画する必要があります。キャンバスの一部をクリアする方法はありますが、通常は更新して全体を再描画します。 – adeneo