如何获得EaselJS'鼠标事件是否正常工作?它看起来可以工作,但它不断返回一个位图ID,而不是正确的

How can I get EaselJS's MouseEvent to work properly? It SEEMS to work, but it keeps returning back a single bitmap ID, not the correct

本文关键字:工作 返回 何获得 一个 位图 ID EaselJS 常工作 鼠标 是否 看起来      更新时间:2023-09-26

我正在用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); })

所有事件对象都有一个目标元素,通常是触发它的元素