javascript - 如何让 EaselJS 的 MouseEvent 正常工作?它似乎可以工作,但它不断返回单个位图 ID,而不是正确的

标签 javascript bitmap mouseevent easeljs

我正在 EaselJS 中编写一个迷你游戏,需要在图 block 网格上单击鼠标。 然而,它似乎只是部分工作 - 或者可能没有为每个位图分配唯一的事件。在创建过程中,我分配了一个简单的 ID - 每次迭代计数的数字,并期望得到它......但无论我单击哪里,在舞台上的 49 个对象(六边形图 block )中,它只报告返回 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); })

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

关于javascript - 如何让 EaselJS 的 MouseEvent 正常工作?它似乎可以工作,但它不断返回单个位图 ID,而不是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26377526/

相关文章:

delphi - 我可以强制 Delphi 6 TImageList 位图将其透明像素绘制为某种颜色吗?

JavaFX。画一个球并从它的中心拖一条线

java - 为什么我点击的地方不画圆圈

javascript - 在 Backbone 中,model.get ('foo' ) 和 model.attributes.foo 之间有什么区别吗?

javascript - Jest - 如何测试函数是否对参数进行了更改

javascript - 了解智威汤逊

jQuery 可拖动 : the draggable box go over the container - bug?

JavaScript 全局变量在页面加载时初始化

android - 将 Bitmap 转换为 Drawable 什么都不显示

android - 绘制虚线 (....) 路径而不是直线 (________)