2015-02-23 19 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(); 
}