Konva.js图像显示在桌面上,但不显示在移动设备上

时间:2020-04-27 00:20:46

标签: javascript canvas html5-canvas konvajs

我正在尝试绘制一个包含图像的保存的Konva.js阶段。它可以在台式机(Chrome和Safari)上正常运行,但不能在移动Chrome或移动Safari(iOS;我无法测试Android)上运行。

我已经使用console.log来确认image.draw()正在使用正确的资产在移动设备上启动,但是画布仍为空白。

我可能忽略了某些竞争条件,这种情况在移动设备上更为普遍?我是Konva和Canvas的新手,所以非常感谢您做出全面的答复。

下面包含了相关的JS代码:

var imageData = {
  billy: {
    x: 146,
    y: 126,
    src: '/assets/billy.png'
  },
  nox: {
    x: 279,
    y: 126,
    src: '/assets/nox.png'
  },
  battleMap: {
    x: 2100,
    y: 2100,
    src: '/assets/map.jpg'
  }
};

socket.on('stage', data => {
    var json = JSON.parse(data);
    stage = Konva.Node.create(json, 'container');
    mapLayer = stage.findOne("#mapLayer");
    tokenLayer = stage.findOne("#tokenLayer");

    var images = stage.find("Image");

    images.map(image => {
      var id = image.attrs.id;
      var imageObj = new Image();

      imageObj.onload = function() {
        stage.findOne('#' + id).image(imageObj);
        console.log("drawing " + imageObj.src);
        image.draw();

      };
      imageObj.src = imageData[id].src;
    });
});

0 个答案:

没有答案