使用CreateJS单击时删除形状

时间:2016-02-28 10:51:50

标签: javascript createjs easeljs

如何仅删除CreateJS中的形状?在我的例子中,我创建了一些带有createSquare函数的正方形。我的目标是有一个函数或点击事件,它只删除被点击的方格。

我已经尝试了事件监听器并且点击了,并且没有运气。我已经注释掉了我尝试使用的代码。

Here is a link to a working fiddle.

JS如下:

var canvas;
var stage;
var square;

function init() {   
    canvas = document.getElementById("canvas");
    stage = new createjs.Stage(canvas);
}

function createSquare(){
    square = new createjs.Shape();
    square.graphics.beginFill("red").drawRect(0, 0, 50, 50)
    square.x = Math.random() * canvas.width;
        square.y = Math.random() * canvas.height;
    stage.addChild(square);
    stage.update();
}

// This code should remove the squares
/*
square.on("click", function(evt) {
    stage.removeChild(this);
});
*/

window.onload = init();

createSquare();
createSquare();
createSquare();
createSquare();
createSquare();
createSquare();

1 个答案:

答案 0 :(得分:2)

CreateJS中的事件处理程序传递event object。鼠标事件会收​​到MouseEvent

事件的目标将是点击的内容。

square.on("click", function(evt) {
    stage.removeChild(evt.target);
    stage.update();
});

创建时,您需要将侦听器添加到每个方块。

或者,你可以一次听这个舞台。

stage.on("click", function(evt) {
    stage.removeChild(evt.target);
    stage.update();
});