我正在用EaselJS编写一个迷你游戏,需要在瓷砖网格上单击鼠标。
但是,它似乎只能部分工作-或可能没有为每个位图分配唯一的事件。在创建过程中,我分配了一个简单的ID-每个迭代都会递增一个数字,并希望将其取回....但是无论我单击何处,舞台上的49个对象(六边形图块)中都只会返回48。 ...每次。我启用了stage.enableMouseOver(20),我最初忘记了它,但是并没有帮助。
function BuildGround()
{
var i = 0;
for (var x = 0; x < 7; x++)
{
for (var y = 0; y < 7; y++)
{
var h = 102;
var s = h/Math.cos(30*Math.PI/180)/2;
var tempTile = new createjs.Sprite(Tiles, 0);
WorldContainer.addChild(tempTile);
tempTile.regX = 64;
tempTile.regY = 64;
tempTile.id = i;
tempTile.x = x * s * 1.5;
tempTile.y = y * h + (x % 2) * h / 2;
tempTile.addEventListener("click", function(event) { alert(tempTile.id); })
TileArray.push(tempTile);
i++;
console.log(i);
}
}
WorldContainer.x = 155;
WorldContainer.y = 150;
}
最佳答案
我的猜测是,您遇到JavaScript的上下文问题,请尝试以下操作:
tempTile.addEventListener("click", function(event) { alert(event.target.id); })
所有事件对象都有一个目标元素,通常是触发它的元素。