2017-02-17 16 views
2

これらのアイテムのサイズを変更できません。 set関数は機能しておらず、オブジェクトコレクションを認識していません。ファブリックjsで選択したアイテムのサイズを変更する必要があります

canvas.loadFromJSON(json,canvas.renderAll.bind(canvas)) 

canvas.renderAll(); 

//select all items first (this works) 
var objs = canvas.getObjects().map(function(o) { 
    return o.set('active', true); 
}); 

//deactivate some items i dont want to resize (this works) 
canvas.item(0).set('active', false); 
canvas.item(1).set('active', false); 
canvas.item(2).set('active', false); 
canvas.item(3).set('active', false); 
canvas.item(4).set('active', false); 

canvas.renderAll(); 
//the problem starts here 
var o = canvas.getActiveGroup(); 
o.set({width:100, height:100}); 
+0

私はあなたに何か助けてくれましたか?それ以上のことは必要ですか? –

答えて

1

実用的なJSFiddle、http://jsfiddle.net/rekrah/pnpc3j3r/です。

canvas.loadFromJSON(json,canvas.renderAll.bind(canvas)) 

canvas.renderAll(); 

//select all items first (this works) 
var objs = canvas.getObjects().map(function(o) { 
    return o.set('active', true); 
}); 
canvas.renderAll(); 

//deactivate some items i dont want to resize (this works) 
canvas.item(0).set('active', false); 
canvas.item(1).set('active', false); 
canvas.item(2).set('active', false); 
canvas.item(3).set('active', false); 
canvas.item(4).set('active', false); 

canvas.renderAll(); 
//this is where the problem goes away 
canvas.getObjects().map(function(o) { 
    return (o.active ? o.set({ 
    width: 100, 
    height: 100 
    }).setCoords() : o); 
}); 
canvas.renderAll(); 

set機能が働いていない理由は、オブジェクトが定義されていないで、あなたはアクティブな「グループ」を持っていない - あなただけのtrueに設定され、アクティブプロパティを持つオブジェクトを持っています。

関連する問題