Генерация нескольких изображений из цикла

1

Я попытался написать цикл, который загружает изображение из локального пути. Для этого я пытаюсь использовать Konva:

const playerLayer = new Konva.Layer();
var playerAmount = 1;
  while (playerAmount < 6) {
    var playerIcon = new Image();

    var playerInstance = new Konva.Image({
      x: 660,
      y: 140,
      image: playerIcon,
      width: 32,
      height: 32
    });
    playerIcon.src = "media/heroes/hero1.png";
    playerLayer.add(playerInstance);
    playerAmount++;
    } 
    stage.add(playerLayer);

По какой-то причине изображения не отображаются.

Что я проверил:

  • Konva.Image успешно становятся дочерьми PlayerLayer, я могу видеть их в инспекторе кода
  • На странице появляется слой, на нем ничего нет (я вижу его в инспекторе)
  • Замена изображения на простые фигуры (Regular.Polygon) отлично работает.
  • 0
    Перемещение PlayerLayer вверх с помощью .moveToTop () также не работает, если у кого-то есть такая идея. На этом слое просто ничего нет.
Теги:
loops
while-loop
konvajs

1 ответ

2
Лучший ответ

Вам необходимо перерисовать слой при загрузке изображения:

playerIcon.onload = function() {
  playerLayer.batchDraw();
}
  • 0
    Спасибо, теперь отлично работает! У меня есть еще один вопрос по Konva, если вы хотите мне помочь, я был бы признателен за это: stackoverflow.com/questions/50854814/context-menu-with-konva-js

Ещё вопросы

Сообщество Overcoder
Наверх
Меню