【发布时间】: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