0
ボタンをクリックするたびに、キャンバス上のすべてのオブジェクトが選択されてグループ化され、すべてが一緒に操作されるようにしています。キャンバス上のすべてのオブジェクトをグループ化/グループ解除したいときに、必要なオブジェクトを選択する必要がありますが、必要な方法でほとんど機能するオブジェクトのグループ化とグループ解除の良い例が見つかりました。FabricJSキャンバス上のすべてのオブジェクトをアクティブにしてグループにするにはどうすればよいですか?
私は私が変更されたことがわかっ例に:http://jsfiddle.net/softvar/NuE78/1/
マイ変形例:http://jsfiddle.net/NuE78/68/
var canvas = new fabric.Canvas('paper', {
isDrawingMode: true
});
$("#select").click(function() {
canvas.isDrawingMode = false;
});
$("#draw").click(function() {
canvas.isDrawingMode = true;
});
$("#group").on('click', function() {
var group = new fabric.Group();
for(var i = 0; i < canvas.getObjects().length; i++) {
group.addWithUpdate(canvas.getObjects()[i]);
}
canvas.setActiveGroup(group);
canvas.renderAll();
var activegroup = canvas.getActiveGroup();
activegroup.clone(function(newgroup) {
canvas.discardActiveGroup();
canvas.getObjects().forEach(function(object) {
canvas.remove(object);
});
canvas.add(newgroup);
});
});
$("#ungroup").click(function() {
var obj = canvas.getObjects()[0];
if (obj.type == "group") {
var items = obj._objects;
obj._restoreObjectsState();
canvas.remove(obj);
for (var i = 0; i < items.length; i++) {
canvas.add(items[i]);
canvas.item(canvas.size() - 1).hasControls = true;
}
canvas.renderAll();
}
});
ありがとうあなたはすでにそれを理解したか、または解決策がまだ必要ですか? –
@moáoisまだそれを得ていない。私は上記で提供したもの以外にも何かを試しましたが、まだ何もありません。 – Schwarz