easeljs在不同的位置多次添加位图到舞台上

easeljs add bitmap to stage multiple time at different position

本文关键字:位图 添加 舞台 位置 easeljs      更新时间:2024-03-02

我刚开始使用easeljs库。我创作了一幅带舞台的画布,效果很好。

我想添加位图作为按钮,并将它们并排添加到舞台的底部。

我尝试过以下操作,但它将位图放在了彼此之上。

var button = new createjs.Bitmap(queue.getResult("largebrick"));
        var contentWidth = document.getElementById("content").offsetWidth;
        var contentHeight = document.getElementById("content").offsetHeight;
        var container = new createjs.Container();
        stage.addChild(container);
        stage.enableMouseOver(10);
        for(var i = 0; i <10; i++){
            button.x = 0 + button.getBounds().width * i;
            button.y = contentHeight - button.getBounds().height;
            button.addEventListener("mouseover", function() { document.body.style.cursor = 'pointer'; });
            button.addEventListener("mouseout", function() { document.body.style.cursor = 'default'; });
            button.addEventListener("click", function(event) {addBricks(button); });
            container.addChild(button);
        }

我希望你们中的一些人能帮忙。

这里有几件事。您需要在循环中创建一个新的按钮实例,否则您只是在每次迭代中移动按钮的原始实例。在这个例子中,我通过使用形状简化了所有内容,但您可以很容易地对位图进行同样的操作。

var xPos = 0;
for(var i = 0; i < 10; i++){
    var button = new createjs.Bitmap(queue.getResult("largebrick"));
    button.cursor = "pointer";
    button.x = xPos;
    button.y = contentHeight - 50;
    xPos += 60;
    container.addChild(button);
}

此外,createjs支持将游标定义为显示对象的属性,如so

button.cursor = "pointer";

这应该会稍微简化您的代码。