2017-02-17 58 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的对象。