2015-02-23 54 views
1

你好,非常感谢你的帮助。Fabric.js访问组中的功能

我是fabric.js的新手,我有一个基本问题。

  1. 我在一个函数中创建了一组3个对象。
  2. 我想在另一个函数中改变这个组的一个对象的属性。

更一般地说,如果有人能向我解释如何访问组中的另一个对象,那么这将非常有用。

我不知道该怎么做。

function groupit() //Works { 
    var circle1 = new fabric.Circle({ 
    radius: 50, 
    fill: 'red', 
    left: 0 
    }); 
    var circle2 = new fabric.Circle({ 
    radius: 50, 
    fill: 'green', 
    left: 100 
    }); 
    var circle3 = new fabric.Circle({ 
    radius: 50, 
    fill: 'blue', 
    left: 200 
    }); 
    var group = new fabric.Group([ circle1, circle2, circle3 ], { 
    left: 200, 
    top: 100 
    }); 
    canvas.add(group); 
} 

function groupchg() //Does not work { 
    canvas.setActiveGroup(group); 
    group.add(new fabric.Rect({ 
    left: 100, 
    top: 100, 
    originX: 'center', 
    originY: 'center' 
    })); 
} 

回答

0

因为你叫canvas.setActiveGroup(group);function groupchg(),财产group可能是零。如果在function groupit()中定义group属性,可以修复。

0

好的找到解决方案。

要访问一组特定的目标i使用以下代码:

function groupchg() { 

//console.log(canvas.getActiveGroup()); 
canvas.setActiveObject(canvas._objects[0]._objects[1]); 
var activeObj = canvas.getActiveObject(); 
activeObj.setFill('red'); 
activeObj.set({left: 30,top:150}); 
canvas.renderAll(); 
}