2015-07-21 34 views
2

大家好日子,给svg对象一个笔画

我试图在围绕边框的笔画中提供一个svg对象。不幸的是

obj.set({ 
    'stroke': 'red', 
    'strokeWidth': 2 
}); 

即使在更新后也不起作用。

obj.setCoords(); 
canvas.renderAll(); 

所有其他属性如填充或角度似乎工作。有人遇到过这个问题并知道如何解决它?

谢谢您已经 塞巴斯蒂安

编辑: 这是怎么了加载SVG:

var group = [];  
var loadedObjects; 

fabric.loadSVGFromURL(

      'bla.svg', 

      function(objects, options) { 
       loadedObjects = new fabric.Group(group); 
      }, 

      function(item, object) { 
       object.set('id', item.getAttribute('id')); 
       group.push(object); 
      } 
); 
+0

是您的obj路径吗?如果是coul你提供你的导入svg的完整代码? – InferOn

+0

我编辑了我的文章! – Sebastian

+0

你好@Sebastian,你的代码是正确的,问题可能与svg相关,添加你导入的svg标记,我们可以肯定地解决你的问题;顺便说一句,看看你的其他问题,已解决 – InferOn

回答

1

fabricjs不支持边框为拉丝团体或路径组。 你可以做的是加载你的svg作为一个路径组。 一旦它被加载创建一个宽度和高度相同的矩形,给他相同的顶部和左侧。敲击矩形并将它们分组:

fabric.loadSVGFromURL(

      'bla.svg', 

      function(objects, options) { 
       var svg = fabric.util.groupSvg(objects, options); 
       var rect = new fabric.Rect({width:svg.width, height: svg.height, top:svg.top, left: svg.left, stroke: 'red', strokeWidth: 5}); 
       group = new fabric.Group([svg, rect]); 
       canvas.add(group); 
      } 
);