【问题标题】:removeChild() not working using easeljsremoveChild() 无法使用easeljs
【发布时间】:2015-08-21 07:38:04
【问题描述】:

我正在使用easeljs 创建一个舞台,然后我将瓷砖放在舞台上的随机位置。当用户点击一个图块时,该图块必须从舞台上移除。 我面临两个问题。首先是鼠标事件不起作用。代码“tile.onPress = (tileOnPress).bind(this);”所以我改用 addEventListener 方法。现在,虽然当我在控制台上获取输出时正在调用该函数,但该图块并未从舞台上移除。 代码如下:

c99.Game = (function(){
function Count99Game() {
    console.log("Count 99 game starts");

    this.canvas = document.getElementById('game-canvas');

    this.stage = new createjs.Stage(this.canvas);

    var totalTiles = 10;

    var tileOnPress = function(event) {
        console.log("Pressed");
        this.stage.removeChild(event.target);
        this.stage.update();
    };  

    for (var i = totalTiles; i > 0; i--) {
        var tile = new c99.Tile(i);
        this.stage.addChild(tile);
        tile.x = Math.random()*(this.canvas.width - tile.width);
        tile.y = Math.random()*(this.canvas.height - tile.height);

        //tile.onPress = (tileOnPress).bind(this);
        tile.addEventListener("click", tileOnPress.bind(this));
    }

    this.stage.update();
}   

return Count99Game;
})();

如果有人能告诉我为什么“tile.onPress = (tileOnPress).bind(this);”,我将不胜感激不工作,还需要在 tileOnPress 函数中进行哪些更改,以便可以从舞台上移除被按下的图块。

完整代码见https://github.com/ZANTGames/count99/blob/master/js/count99-game.js

【问题讨论】:

  • 能否提供一个小提琴,无法调试此代码
  • 你好,这里是小提琴jsfiddle.net/g2xfmekL/3的链接
  • 实际上您正在使用画布,而画布是一组绘制的像素......它不像您可以轻松删除的对象,您可以做的一件事是重新绘制画布,我正在寻找其他解决方案
  • 我正在使用easeljs 将形状添加到舞台。 Easeljs 提供了在舞台上添加和删除元素的方法。添加我可以简单地使用 addChild() 方法和删除我可以使用 removeChild() 方法。但不知何故,显示对象无法传递给 removeChild() 方法。请注意,如果我确实 removeAllChildren() 那么所有的瓷砖都会从舞台上移除
  • hmmm removeAllChildren 正在工作,所以应该有办法,可能是我们遗漏了什么

标签: javascript easeljs createjs


【解决方案1】:

试试这个

this.stage.removeChild(event.target.parent)

这是因为 event.target 是 shape,它的父对象是 tile,基本上你想删除 tile,所以这是可行的

为了您将来的参考,我从这个文档中找到了它 http://www.createjs.com/docs/easeljs/classes/Stage.html

【讨论】:

  • 非常感谢!感谢您的帮助:-)
  • 我试过了.. 但我需要 15 的声望:P 一旦我的声望达到 15 就会支持它
  • 哦,我不知道
  • 也可以在父节点上使用mouseChildren,将子事件聚合到父节点上。
猜你喜欢
  • 2010-12-11
  • 2014-03-22
  • 1970-01-01
  • 2018-06-29
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多