Lanceljs добавить растровое изображение, чтобы поставить несколько раз в разных местах

Я только начал работать с библиотекой 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);

        }

Я надеюсь, что некоторые из вас, ребята, могут помочь.

1 ответ

Решение

Пара вещей здесь. Вам нужно создать новый экземпляр кнопки внутри цикла, в противном случае вы просто перемещаете исходный экземпляр кнопки на каждой итерации. В этом примере я немного упростил все, используя фигуру, но вы можете легко сделать то же самое с вашим растровым изображением.

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 поддерживает определение курсоров в качестве свойства экранного объекта, как так

button.cursor = "pointer";

что должно немного упростить ваш код.

Другие вопросы по тегам