我试图创建和删除事件的弧,添加部分工作正常,我将它们保存在数组中,所以我可以通过某种方式调用事件侦听器来删除它们,我的意思是它的工作在控制台作为数组值精由其在画布 代码更新不及时递减:在画布上删除
<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事件,我怎么继续做/修复它?
如果是该keydown的处理程序,在那里你拼接数组,你永远不会更新画布,这需要完全重画来更新 – adeneo
完成重画来更新?我不遵循?像刷新功能? – tankit88
如果您想从画布中移除某些内容,则必须重绘整个画布而不是这些部分。有多种方法可以清除画布的某些部分,但通常只需使用更新重新绘制整个画面。 – adeneo