在动力学js中使用stage.toJSON()重新加载时获取重复的图像

时间:2013-02-21 14:16:14

标签: javascript image html5 html5-canvas kineticjs

我的画布上几张图片可以调整大小并支持拖放。

保存画布后我正在做

    var stage = Kinetic.Node.create(json, 'container');

如果我只是在画布上添加一个图像就可以了。 但如果我添加超过1,我会得到多个图像。 就像我添加2个不同的图像一样,我每个都有4个图像。 如果我加3,我得到3.依此类推。

这是一个小片段

   var stage = Kinetic.Node.create(json, 'container');
   var images = stage.get('.image');
   console.log(images) 

在console.log中我得到了同一图像的多个json结果。 我只是使用src来加载图像

   for(i=0;i<images.length;i++)
   {  
   //function to induce scope
   (function() {
   var image = images[i];

   console.log(images[i])
  var width = images[i].attrs.width;
  var height = images[i].attrs.height; 
  var imageObj = new Image();
  imageObj.onload = function() {
      image.setImage(imageObj);
       image.getLayer().draw();
    };
  imageObj.src = image.attrs.src;
  })();
 } 

你知道为什么会这样吗?

0 个答案:

没有答案